| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Auswahlbox (ChoiceBox, ComboBox) mit unsortiertem Inhalt
Programm-AuswBox2
Hier wird zum Erstellen derAuswahlbox die @Control Funktion benutzt.
damit ist es möglich den Inhalt so wie geladen (=unsortiert) oder sortiert anzuzeigen.
Version 1.1 11.12.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 CBox&,Ende%,Dlg%
SetTrueColor 1
Cls @RGB(255,255,255)
Let Dlg% = @CreateDialog(%Hwnd,AuswahlBox (ChoiceBox),250,100,250,300)
Let Ende%=@createbutton(Dlg%,Ende,100,240,80,32)
Auswahlbox erstellen (unsortierte Form)
Let CBox& = @Control(ComboBox,,$50E00003,10,10,200,200,Dlg%,1000,%hinstance)
um die sortierte Form zu bestimmen muß Parameter 3 $50E00103 sein.
sollte die Auswahlbox im Programm mehrmals benutzt werden, so kann der Inhalt mit
@Sendmessage(CBox&,$14B,0,0)
gelöscht werden
befüllen der Box
... entweder es wird die ListBoxListe befüllt (hier als Beispiel mit den Schriftarten)
und dann übertragen der ListBoxListe in die Auswahlbox
AddFonts
MoveListToChoice(CBox&)
... oder Einträge direkt hinzufügen (wird hier absichtlich ungeordnet hinzugefügt)
AddChoice(CBox&,0-Ausgabe-1)
AddChoice(CBox&,Ausgabe-4)
AddChoice(CBox&,Ausgabe-3)
AddChoice(CBox&,Ausgabe-2)
beide Varianten können auch kombiniert werden.
soll bereits ein bestimmter Eintrag vorselektiert werden:
Parameter 3. ist die Zeilenummer (0 = 1. Zeile)
@Sendmessage(CBox&,$14E,3,0) Zeile 4 ist die Zeilenummer
auswerten. Wird eine Zeile markiert wird WaitInput durchbrochen.
auf den Text der ausgewählten Zeile wird mit @GetText$(CBox&) zugegriffen
WhileNot @GetFocus(Ende%)
WaitKey
Print @GetText$(CBox&) kann auch hier ausgewertet werden
EndWhile
Print @GetText$(CBox&)
Print zum Beenden Ende-Button drücken
WaitKey
End
Anmerkung:
die Einträge der ChoiceBox können auch zeilenweise ausgelesen werden.
zum Test dieses Abschnittes obiges End entfernen (als Kommentar kennzeichnen)
Um den markierten Eintrag zu lesen kann statt @GetText$(CBox&) auch folgende
Variante benutzt werden. Hier muß eine Bereichsvariable verwendet werden.
Declare Cur&, Max&, Ber#, Text$
Dim Ber#,100 = mind. Länge + 1 des längsten Eintrags in der Choicebox
welche Zeile wurde markiert?
Let Cur& = @Sendmessage(CBox&,$147,0,0) Cur& erhält die ausgewählte Zeilennummer
der Text der Zeile wird in Ber# übertragen.
@Sendmessage(CBox&,$148,Cur&,Ber#)
natürlich kann in Cur& ein beliebiger Wert (von Null beginnend) stehen
jetzt kann der Text in eine Stringvariable übernommen werden
Let Text$ = @String$(Ber#,0)
um wahlweise irgendwelche Zeilen (also auch nicht-markierte) auslesen zu können ist
es wichtig zu wissen wieviele Einträge in der Choicebox vorhanden sind.
wieviele Einträge gibt es? (ist immer die Anzahl der Zeilen - 1)
Let Max& = @Sendmessage(CBox&,$146,0,0) Max& erhält die Anzahl Einträge
Dispose Ber# nicht vergessen, eine Bereichsvariable muß immer freigegeben werden!
Print
Print Text$
Print zum Beenden Ende-Button drücken
WaitInput a class=s4 href='./../../funktionsreferenzen/xprofan/end/'>end
|
|
|
| |
|
|