Hallo,
wenn ich in einem Programm auf eine Combobox klicke, wird dieses Event jedesmal zweimal aufgerufen. Nämlich dann, wenn ich auf den Auswahlpfeil (um die Combox zu öffnen) klicke und nachdem ich dann in der Auswahlliste meine Auswahl getroffen habe nochmal.
Das würde ich gerne verhindern, da ich mit der Auswahl in der Combobox jedesmal Daten von der Festpaltte automatisch in ein Array schreiben will. Problem hierbei ist, das beim ersten Klick zum öffnen die Daten des aktuellen Comboxeintrags geladen werden und nach meiner Auswahl in der Liste die gewünschten Daten geladen werden.
Wie also kann ich verhindern, das der erste klick schon einen Event in der Combobox auslöst?
Für Antworten im voraus herzlichen dank!
PB4.30: Abfrage von Comboxevent
- unix
- Beiträge: 361
- Registriert: 15.02.2005 19:25
- Wohnort: Zwischen Coburg und Bamberg :-)
- Kontaktdaten:
bin nicht sicher aber meinst du zufällig EventType() oder EventGadget() ich Denke EventGadget() kannst du gut verwenden dafür und zwar so:
kannst ja noch irgendwie nen Timeout einbauen oder deine events zählen lassen
Code: Alles auswählen
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #ComboBox_0
Lock = 1
Default
If Lock=1
;
;hier dein Code
;wird erst aufgerufen wenn von der Combo kein event mehr kommt
;
Lock=0
EndIf
EndSelect
Case #PB_Event_CloseWindow
Quit=1
EndSelect
Until Quit=1
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
die hat aber Urlaub.
MfG : Unix
Unter Windows kannst du folgendes versuchen :
Code: Alles auswählen
If OpenWindow(0, 0, 0, 270, 140, "ComboBoxGadget", 13107201)
ComboBoxGadget(0, 10, 10, 250, 21)
AddGadgetItem(0, -1, "ComboBox editable...")
AddGadgetItem(0, -1, "ComboBox editable. 3..")
Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
If EventGadget() = 0 And EventType() = #CBN_SELCHANGE
Debug "change"
EndIf
EndIf
Until event = #PB_Event_CloseWindow
EndIf