| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Listbox mit Tabulatoren (sortiert oder unsortiert)
Programm-Listbox2
Beispiel einer Listbox mit Tabulatoren. Sortierte oder unsortierte Listbox.
Reagiert erst auf OK-Button (hat aber nichts damit zu tun, weil Tabulatoren verwendet
werden).
Hier sind (offiziell) nur linksbündige Tabulatoren möglich.
Nach einem Hinweis von Alfred Jauck bewirkt ein negativer Wert einen rechtsbündigen
TabStop.
Version 1.1 11.4.2002. Das Programm kann frei benutzt werden, für
Schäden kann keine Haftung übernommen werden.
Autor: Gerhard Putschalka
homepage: http://members.telering.at/g.putschalka/index.html
email: g.putschalka@web.de
Declare Listbox%,Ende%,Dlg%,BOk%,Tx$,Text$,Tb#
SetTrueColor 1
Cls @RGB(255,255,255)
Let Dlg% = @CreateDialog(%Hwnd,Auswahl - anzeigen,250,40,300,300)
Let BOk% = @CreateButton(Dlg%,anzeigen,40,230,70,24)
Let Ende% = @CreateButton(Dlg%,Ende,180,230,70,24)
um eine sortierte Listbox zu erstellen ist @CreateSortedListBox zu verwenden.
Let ListBox%=@CreateListBox(Dlg%,,20,10,250,200)
hier werden die Tabulatoren der Listbox zugeordnet
Die Tabulatoren müssen sortiert nach dem aufsteigenden Absolutwert(!) angegeben werden.
Dim Tb#,12 Anzahl Tabulatoren * 4 (ist daher 12 für 3 Tabulatoren)
(Zuordnung zur Bereichsvariable mit Adressen 0, 4, 8, 12, 16 usw.)
LONG Tb#,0 =40
LONG Tb#,4 =75
LONG Tb#,8 =-120 rechtsbündiger Tabstop
@SendMessage(ListBox%,$0192,3,Tb#) Parameter 3 gibt die Anzahl der Tabstopps an !!!
Dispose Tb#
hier werden die Daten zur Listbox hinzugefügt. Die Zeichenfolge ist das Tabulator-
byte (@Chr$(9)) welches bewirkt, daß der nachfolgende Text entspr. dem gesetzten
Tabulator in der Anzeige verschoben wird.
@AddString(ListBox%,ABC 02 X 004)
@AddString(ListBox%,XYZ 102 X 7)
@AddString(ListBox%,BCD 9 X 0041)
@AddString(ListBox%,CDEFG 879 X 903)
@AddString(ListBox%,ABC 02 y 0)
@AddString(ListBox%,ABC 02 z 00)
@AddString(ListBox%,ABC 02 f XY04)
@AddString(ListBox%,01 2 03 04)
hier werden (als Beispiel) keine oder weniger Tabulatorbytes im Text eingesetzt
@AddString(ListBox%,Beispiel)
@AddString(ListBox%, einer)
@AddString(ListBox%, Listbox)
@AddString(ListBox%,mit Tabulatoren)
WhileNot @GetFocus(Ende%)
WaitKey
If @getfocus(BOk%)
hole gesammte Zeile (inkl. Tabulatorbytes)
Let Tx$ = @GetString$(ListBox%,@GetCursel(Listbox%))
normalerweise wird man hier die einzelnen Elemente der Zeile mit der
Funktion @Substr$ extrahieren. Z.B.
Let Text$ = @Substr$(Tx$,1, )
würde das erste Element der Zeile in Text$ übernehmen
hier wird, zur Anzeige, das Tabulatorbyte durch / ersetzt.
Let Tx$ = @Translate$(Tx$, , / )
Print Tx$
EndIf
EndWhile
End
|
|
|
| |
|
|