hi
ich bin autoit anfänger und habe zwei buttons erstellt
wenn ok gedrückt wird, wird ok gelöscht und ein abbrechen-button erstellt
wird abbrechen gedrückt wird ein okay-button erstellt
nun, wenn ich aber erneut okay drücke, wird dieser immre iweder erstellt
ich verstehe nicht warum
edit:
okay, ich weiß jetzt waurm es passiert
er betritt jedesmal die abbrechen if-anweisung
obowhl der abbrechen ja nur ein einziges mal gedrückt worden ist und nicht jedes mal erneut
wie kann ich das umgehn, dass der wert, der in $id_button_abbrechen = $msg anders wird?
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
Achim
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <Constants.au3>
Global $ende, $stunden, $minuten, $sekunden, $start = 0, $umrechnen = 0
Global $erstelle_ok_button = 1, $erstelle_abbrechen_button = 1, $id_button_abbrechen, $aller_erster_start = 1
$id_hauptfenster = GUICreate("Herunterfahren", 256, 256, -1, -1)
GUISetIcon("C:\Users\Achim\Icons\Shutdown.ico")
TraySetIcon("C:\Users\Achim\Icons\Shutdown.ico")
GUISetState ()
$id_bild_hintergrund = GUICtrlCreatePic("C:\Users\Achim\Desktop\Neuer Ordner\firestorm.jpg", 0, 0, 256, 256); , 0) ;i hier die ",0"
GuiCtrlSetState(-1 ,$GUI_DISABLE)
; erstelle die beschriftungslabels
$id_label_stunden = GUICtrlCreateLabel("Stunden", 10, 10)
GUICtrlSetBkColor(-1,0xFFFFFF)
$id_label_minuten = GUICtrlCreateLabel("Minuten", 60, 10)
GUICtrlSetBkColor(-1,0xFFFFFF)
$id_label_sekunden = GUICtrlCreateLabel("Sekunden", 110, 10)
GUICtrlSetBkColor(-1,0xFFFFFF)
;erstelle die eingabefelder
$id_input_stunden = GuiCtrlCreateInput("", 10, 25, 40, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2, 2) ; nur 2 zahlen
$id_input_minuten = GuiCtrlCreateInput("", 60, 25, 40, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2, 2) ; nur 2 zahlen
$id_input_sekunden = GuiCtrlCreateInput("", 110, 25, 40, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2, 2) ; nur 2 zahlen
$button_state_alt = 0
$button_state_neu = 0
Do
$msg = GUIGetMsg()
;~ ----------------------------------------------------
;~ Schleife abbrechen wenn auf schließen gedrückt wurde
If $msg = $GUI_EVENT_CLOSE Then
$ende = 1
EndIf
;~ ----------------------------------------------------
;erstelle herunterfahren-button
if($start = 0 And $erstelle_ok_button = 1) Then
$id_button_ok = GuiCtrlCreateButton("Ok", 170, 20, 70)
$erstelle_ok_button = 0
if ($aller_erster_start = 1) Then
GuiCtrlSetState(-1, $GUI_DISABLE)
$aller_erster_start = 0
EndIf
ElseIf($start = 1 And $erstelle_abbrechen_button = 1) Then
$id_button_abbrechen = GuiCtrlCreateButton("Abbrechen", 170, 20, 70)
$erstelle_abbrechen_button = 0
EndIf
if ($start = 0) Then
; --------------------------------
;~ Auslesen des Inhaltes der Felder
$stunden = GuiCtrlRead($id_input_stunden)
$minuten = GuiCtrlRead($id_input_minuten)
$sekunden = GuiCtrlRead($id_input_sekunden)
;~ -------------------------------
; ----------------------------------------------------------
; Überprüfen ob Ok-Button ausgegraut werden soll oder nicht
if($button_state_alt = $button_state_neu) Then
if($stunden <> "" Or $minuten <> "" Or $sekunden <> "") Then
GuiCtrlSetState($id_button_ok, $GUI_ENABLE)
$button_state_neu = 1
EndIf
Else
if($stunden = "" And $minuten = "" And $sekunden = "") Then
GuiCtrlSetState($id_button_ok, $GUI_DISABLE)
$button_state_neu = 0
EndIf
EndIf
; ----------------------------------------------------------
EndIf
; --------------OK-----------------
; Wenn der OK button gedrückt wurde
if($id_button_ok = $msg) Then
$herunterfahren_status = 1
$umrechnen = 1
GUICtrlDelete($id_button_ok)
GUICtrlSetState($id_label_stunden, $GUI_DISABLE)
GUICtrlSetState($id_label_minuten, $GUI_DISABLE)
GUICtrlSetState($id_label_sekunden, $GUI_DISABLE)
GUICtrlSetState($id_input_stunden, $GUI_DISABLE)
GUICtrlSetState($id_input_minuten, $GUI_DISABLE)
GUICtrlSetState($id_input_sekunden, $GUI_DISABLE)
$start = 1 ; start 0 = unterbrochen, start 1 = läuft
EndIf
; ---------------------------------
; -------------UMRECHNEN-----------
; Gesamte Zeit umrechnen in Sekunden
if($umrechnen = 1) Then
$gesamt_sek = ($stunden * 3600 + $minuten * 60 + $sekunden)
$umrechnen = 0
EndIf
; ---------------------------------
; ----------------------------ABBRECHEN----------------------------
; Wenn der ABBRECHEN button gedrückt wurde
if ($start = 1) Then
if ($id_button_abbrechen = $msg) Then
GUICtrlDelete($id_button_abbrechen)
GUICtrlSetState($id_label_stunden, $GUI_ENABLE)
GUICtrlSetState($id_label_minuten, $GUI_ENABLE)
GUICtrlSetState($id_label_sekunden, $GUI_ENABLE)
GUICtrlSetState($id_input_stunden, $GUI_ENABLE)
GUICtrlSetState($id_input_minuten, $GUI_ENABLE)
GUICtrlSetState($id_input_sekunden, $GUI_ENABLE)
$start = 0 ; unterbrochen
$erstelle_ok_button = 1
EndIf
Endif
; -----------------------------------------------------------------
Until $ende = 1