| |
|
|
| KompilierenMarqueSéparationSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Auswahlbox (ChoiceBox, ComboBox) mit Eingabemöglichkeit (Eingabefeld)
Programm-AuswBox3
Beispiel einer Auswahlbox mit Eingabefeld. Sortiert oder unsortiert.
Während bei AuswBox1 und AuswBox2 nur vorhandene Einträge auswählbar sind kann bei
dieser Auswahlbox auch ein Wert eingegeben werden der nicht in der Liste vorhanden
ist (Beispiel Fontauswahl bei Word o.ä. Programmen).
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%,Cur%
SetTrueColor 1
Cls @RGB(255,255,255)
Let Dlg% = @CreateDialog(%Hwnd,EditChoiceBox mit Eingabemöglichkeit,250,100,250,300)
let Ende%=@createbutton(Dlg%,Ende,100,240,80,32)
füllen und anzeigen einer EditChoiceBox (in PRFELLOW gibt es zwar die Funktion
CreateEditChoiceBox, hier wurde diese Box aber mit @Control gebildet).
@createtext(Dlg%,EditChoiceBox,260,8,100,16)
Auswahlbox erstellen (sortierte Form)
Let CBox& = @Control(ComboBox,,$5421034E,10,10,200,200,Dlg%,2000,%hinstance)
um die unsortierte Form zu bestimmen muß Parameter 3 $5421024E 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,2,0) 3. Zeile anzeigen (3 - 1 = 2)
verhält sich hier anders als in AuswBox1 und AuswBox2 (hat auch ein Edit).
WhileNot @GetFocus(Ende%)
WaitKey
EndWhile
Print @GetText$(CBox&)
Let Cur% = @Sendmessage(CBox&,$147,0,0) ausgew. Zeilennummer holen
bei einem neuen Eintrag ist die Zeilennummer -1
Print Zeilennummer:,@Str$(Cur%)
Print zum Beenden Ende-Button drücken
WaitInput
End
Anmerkung: wie in AuswBox2 kann auch hier die Auswertung der ChoiceBox erfolgen.
(siehe Anmerkung am Ende des Listings in AuswBox2)
|
|
|
| |
|
|