Hallo Leute,
ich habe ein kleines bis mittelschweres Problem.
Ich starte durch den Druck auf einen Button eine Funktion in der eine While-Schleife läuft (listview).
Bei dem Druck auf den Button "Cancel" soll die Schleife sich beenden.
Mein gesamtes Skript (noch wesentlich größer) soll mit dem GUIOnEventMode laufen.
Wenn ich nun in der While-Schleife gefangen bin, sind dem Skript sämtliche andere Funktionen und Button-Drücke egal.
Die Schleife kann ich nur durchbrechen, wenn ich ein Hotkey mit Referenz auf die cancel()-Funktion lege, nicht jedoch durch Knopfdruck.
Ich möchte allerdings keinen Hotkey.
Habt ihr eine Idee?
Würde mich riesig freuen.
Vielen Dank
Im Anhang der entscheidene Code-Teil:
[autoit][/autoit][autoit][/autoit][autoit]Opt("GUIOnEventMode",1)
[/autoit][autoit][/autoit][autoit]GUICtrlSetOnEvent($run_KL2, "listview")
GUICtrlSetOnEvent($stop_KL2, "cancel")
Func listview()
Dim $i, $aContent, $aContent_old
GuiCtrlSetData($listview, "")
$cancel=0
$aContent_old=0
While 1
If $cancel=1 Then
ExitLoop 1
Else
_FileReadToArray("hier das file", $aContent); reads txtfile, on array 0 it gives the nr of lines
If Not _FileReadToArray("hier ein weiteres file", $aContent) Then
Else
If $aContent[0]<>$aContent_old Then
$aContent_old=$aContent_old+1
For $i=$aContent_old to $aContent[0]
_GUICtrlListBox_InsertString($listview, $aContent[$i], -1)
Next
_GUICtrlListBox_SetCurSel($listview, _GUICtrlListBox_GetCount($listview) - 1)
$aContent_old=$aContent[0]
EndIf
EndIf
EndIf
WEnd
$list=0
EndFunc
Func cancel()
local $request
$request = MsgBox(1, "cancel", "do you really want to cancel?")
If $request = 1 Then
$cancel= 1
EndIf
Endif
EndFunc