Hallo liebe AutoIT-Gemeinde,
ich habe ein Problem, welches ich selbst nicht lösen kann, da ich es nicht beschreiben kann. =/
Zum Einen möchte ich eine Funktion aufrufen, die einen Button erstellt, das funktioniert auch gut.
Wenn dieser Button angeklickt wird, soll er durch eine weitere Funktion "zerstört" werden und in einer anderen Funktion wieder ersetzt werden.
Allerdings ist es so, dass letztere Funktion automatisch in Endlosschleife aufgerufen wird und das GUI Somit zerstört wird.
Hier der Code:
Launch.au3
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $New
_NewStart()
_Village()
_SetStats()
GUICtrlSetState($Load, $GUI_ENABLE)
Case $Load
_SetStats()
_Village()
Case $_Village_Forest
_Village_Destroy()
_Forest()
EndSwitch
WEnd
Hier die angesprochene "andere" .au3
Dest.au3
Global $_Village_Forest, $_Forest_Village, $_Forest_Search
[/autoit] [autoit][/autoit] [autoit]Func _Village()
$_Village_Forest = GUICtrlCreateButton("Wald", 160, 20, 100, 20)
EndFunc
Func _Village_Destroy()
GUICtrlDelete($_Village_Forest)
EndFunc
Func _Forest()
$_Forest_Village = GUICtrlCreateButton("Zurück", 160, 20, 100, 20)
$_Forest_Search = GUICtrlCreateButton("Suchen", 160, 50, 100, 20)
EndFunc
Func _Forest_Destroy()
GUICtrlDelete($_Forest_Village)
GUICtrlDelete($_Forest_Search)
EndFunc
Das zum ersten Problem, in der obigen .au3 wird die Funktion "_SetStats()" aufgerufen, die wiederum in einer anderen .au3 liegt.
Diese funktioniert auch genau so wie sie soll, ABER nachdem man das Script beendet (uncompiliert) werden Deklarationsfehler angezeigt.
Var.au3
Func _SetStats()
GUICtrlSetData($Prog_Label, IniRead(@ScriptDir & "\cfg\sys.ini", "Stats", "Force", ""))
EndFunc
Ich hoffe das ist halbwegs verständlich, un mir kann evtl. jemand helfen.
Ich bedanke mich schon einmal im Voraus für alle Mühen!
mfg* vism
// -- EDIT
Ich konnte das Problem lösen.
Ich habe die Deklaration in der letzten Datei global vorgenommen.
Zur Lösung mit dem Loop der Buttons, ich habe die Buttons anstatt mit GUICtrlCreate und GUICtrlDelete, mit den Stati HIDE und SHOW versehen, in Kombination mit dem Erstellen der Buttons in der Main-Datei löste sich das Problem.
Danke trotzdem! =)