Servus Leute,
wieder ein kleines Problem welches mir Kopfschmerzen bereitet.
Ich habe mehrere Comboboxen in meinem Script, welche ein Event auslösen wenn man etwas daraus auswählt.
Manuell funktionert es auch sehr gut, nur benötige ich zusätzlich noch eine Funktion welche das Event auslöst.
Anbei ein angepasstes Beispielskript. Über die Taste ESC wird mit dem Befehl GUICtrlComboBox_SetCurSel ein
Eintrag ausgewählt, dummerweise triggert dieser nicht das Event! Gibt es da ne andere möglichkeit, evtl. über
GuiSendMsg?
Script:
Spoiler anzeigen
#include <GUIComboBox.au3>
#include <GuiConstantsEx.au3>
Opt('MustDeclareVars', 1)
Opt('GUIOnEventMode', 1)
$Debug_CB = False ; Check ClassName being passed to ComboBox/ComboBoxEx functions, set to True and use a handle to another control to see it work
[/autoit] [autoit][/autoit] [autoit]Global $hCombo
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{ESC}", "event")
[/autoit] [autoit][/autoit] [autoit]_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
[/autoit] [autoit][/autoit] [autoit]; Create GUI
GUICreate("ComboBox Set Cur Sel", 400, 296)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$hCombo = GUICtrlCreateCombo("", 2, 2, 396, 296)
GUICtrlSetOnEvent(-1, "test")
GUISetState()
; Add files
_GUICtrlComboBox_BeginUpdate($hCombo)
_GUICtrlComboBox_AddDir($hCombo, @WindowsDir & "\*.exe")
_GUICtrlComboBox_EndUpdate($hCombo)
; Select Item
_GUICtrlComboBox_SetCurSel($hCombo, 2)
; Loop until user exits
[/autoit] [autoit][/autoit] [autoit]While True
[/autoit] [autoit][/autoit] [autoit]Sleep(50)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Main
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func test()
MsgBox(0, "...", GUICtrlRead($hCombo))
EndFunc
Func event()
_GUICtrlComboBox_SetCurSel($hCombo, 1)
EndFunc
Func _exit()
Exit
EndFunc
Gruß
Prajoss