Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: układanie tekstu w TextBoxie
anonim




Typ: Nie zarejestrowany
układanie tekstu w TextBoxie

Pomozcie nowicjuszowi
Mam kilka danych:
imie, nazwisko, wiek - kazdego np po 3

Jak zrobić zeby po kliknięciu w button dane ułozyły się w textboxie w taki sposób:
imie(1)  nazwisko(1)    wiek(1)
imie(2)  nazwisko(2)    wiek(2)
imie(3)  nazwisko(3)    wiek(3),
chodzi konkretnie o to ażeby pomimo róznych długości wartosci kryjących sie pod zmiennymi dane 'układały' się w niby tabele:
Jan      Nowak          18
Jacek  Kowalski        23, itp.
Zakładamy że czcionka jest taka,że każda litera jest tej samej szerokosci.

17-12-2004 00:55
  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

A więc tak:

Private Sub Form_Load()
Dim I As Byte, Max As Integer, Max1 As Integer, Max2 As Integer
Dim War1(2) As String, War2(2) As String, War3(2) As String
For I = 0 To 2
War1(I) = "Hehe" & Spac(I + 1) & "ddd"
War2(I) = "Hehe" & Spac(I + 2) & "ddd"
War3(I) = "Hehe" & Spac(I + 3) & "ddd"
Next
For I = 0 To UBound(War1)
If Len(War1(I)) > Max Then Max = Len(War1(I))
Next
For I = 0 To UBound(War2)
If Len(War2(I)) > Max1 Then Max1 = Len(War2(I))
Next
For I = 0 To UBound(War3)
If Len(War3(I)) > Max2 Then Max2 = Len(War3(I))
Next
Text1.Text = ""
For I = 0 To UBound(War1)
Text1.Text = Text1 & War1(I) & Spaces(War1(I), Max) & War2(I) & Spaces(War2(I), Max1) & War3(I) & Spaces(War3(I), Max2) & vbNewLine
Next
End Sub

Function Spaces(Text As String, Max As Integer) As String
Dim I As Integer
For I = 0 To Max - Len(Text) + 1
Spaces = Spaces & Space(1)
Next
End Function

Function Spac(Ile As Byte) As String
For I = 1 To Ile
Spac = Spac & " "
Next
End Function

Prog wymaga textboxa o nazwie "Text1", Multiline na True i ScrollBars na 3 - both

[Post edytowany dnia 17-12-2004 01:19 przez mikmas]


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

17-12-2004 01:18
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Wydaje mi się, że w przypadku uzupełniania spacjami (a tak zrozumiałam Twój kod) musiałby być ustawiony we właściwościach  TextBox font typu Monospace (np Courier New), przy np MS Sans Serif ta metoda się nie sprawdza, a jeśli ma być font dowolny  to myślę, że należy użyć po prostu VbTab jako "przerywnika" i to wystarczy, bez liczenia długości słowa.


_____________________________________________
Karolina

17-12-2004 12:18
Pokaż profil karolinavb  Wyślij email do karolinavb   
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

No możliwości jest dużo, ale mr. Anonim tak chciał, więc widocznie wie co chce osiągnąć


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

17-12-2004 22:06
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
anonim




Typ: Nie zarejestrowany

nooo, myslałem że mniej jest z tym roboty, ale po dososowaniu do mojego programu działa kapitalnie. Wyobrażałem sobie że wystarczy podać jakąś komende typu space(x) i prog bedzie wpisywał tekst od miejsca x w każdej kolejnej lini. No ale dzięki pomysłowi mikmasa kolumny dostosowują się do długosci tekstu a to jest bardzo przydatne.Co prawda nie doszedłem po co to jest:

Function Spac(Ile As Byte) As String
For I = 1 To Ile
Spac = Spac & " "
Next
End Function

ale bez tego też mi dobrze działa. Dzięki wilekie za pomoc! Pozdrawiam.
karolinavb: jak napisałem "Zakładamy że czcionka jest taka,że każda litera jest tej samej szerokosci. " czyli chyba fachowo monospace

18-12-2004 10:07
  
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1