Hi,
Ich hab da ein Problem. Ich erstelle 2 GUI Fenster, aber wenn ich auf schließen "$GUI_EVENT_CLOSE" klicke schließt sich das falsche Fenster. Die Fenster sind im Skript mit "$HauptGUI" und "$zweitGUI" beschrieben. Wär sehr nett von euch wenn ihr mal gucken würdet warum.
Danke schonmal im Vorraus
Gruß
Der Driver
Spoiler anzeigen
#Region ; Include's
#include <GUIConstantsEx.au3> ;Importieren des Skripts "GUIConstansEx.au3"
#include <GUIConstants.au3> ;Importieren des Skripts "GUIConstans.au3"
#EndRegion
#Region ; Definition und Initialisierung
Dim $Zeilenanfang[11]
Dim $Inhalt[11] ;Declarieren des Array's "Inhalt" mit 11 Platzhaltern
Dim $InputControlIDs[11]
Dim $GUI[5]
Global $ButtonB2
Global $ZweitGUI
Opt ( "TrayMenuMode", 1 ) ;Entfernen des PopUp Menüs wenn man auf das SystemTrayIcon Klickt
$Anzeige = 0 ; Variable "Anzeige" Initialisiert
$EtwasEingetragen = 0 ; Variable "EtwasEingetragen" Initialisiert
$TrayButtonA = TrayCreateItem ( "Anzeigen" ) ;Der Variable wird die ControlID des dabei entstehenden Traymenüeintrages zugewiesen
$TrayButtonB = TrayCreateItem ( "Beenden" ) ;Der Variable wird die ControlID des dabei entstehenden Traymenüeintrages zugewiesen
$LabelAbstand = 14
$InputAbstand = 10
#EndRegion
#Region ; GUI Erstellen
$HauptGUI = GUICreate ( "Tagestätigkeiten vom: " & @MDAY & "." & @MON & "." & @YEAR, 450 , 340 )
For $z = 1 to 10 step + 1
GUICtrlCreateLabel ( $z & "." , 5 , $LabelAbstand )
$LabelAbstand = $Labelabstand + 30
Next
For $z1 = 1 to 10 step + 1
$InputControlIDs[$z1] = GUICtrlCreateInput ( "", 20 , $InputAbstand , 420)
$InputAbstand = $InputAbstand + 30
Next
$ButtonB = GUICtrlCreateButton ( "Beenden", (450/2)-(75/2) , 310, 75, 23)
$ButtonS = GUICtrlCreateButton ( "Speichern", (450/4)-(75/2) , 310, 75, 23)
$ButtonL = GUICtrlCreateButton ( "Laden", ((450/4)*3)-(75/2) , 310, 75, 23)
#EndRegion
#Region ; Hauptschleife
While 1 ; Endlose Wihle-Schleife
$GUI = GUIGetMsg(1) ; Der Variable wird der Gui-Status zugewisen
$Tray = TrayGetMsg() ; Der Variable wird der Tray-Status zugewisen
If $EtwasEingetragen = 0 Then ; Wenn bis jetzt noch keine Eintragung gemacht wurde dann...
For $z2Time = 14 to 17 step +1 ; Zähle von 14 bis 17 in einer Schritten
If @HOUR = $z2Time Then ; Wenn es genau 14,15,16 oder 17 Uhr ist dann...
$Anzeige = 1 ; ...setze die Variable auf "1"
EndIf ; Ende der If-Abfrage
Next ; Nächster Zählerdurchlauf
EndIf ; Ende der If-Abfrage
If $Anzeige = 1 Then ; Wenn die Variable = 1 ist dann...
GUISetState (@SW_SHOW , $HauptGUI) ; ... mache die Gui sichtbar
ElseIf $Anzeige = 0 Then ; Oder wenn die Variable = 0 ist dann...
GUISetState (@SW_HIDE , $HauptGUI) ; Ansonsten mache die Gui unsichtbar
EndIf ; Ende der If-Abfrage
Select ; Anfang des Select Vorgangs
Case $GUI[0] = $ButtonB ; Wurde der Button "Beenden" gedrück...
$Anzeige = 0 ; ...setze die Variable auf "0"
Case $GUI[0] = $GUI_EVENT_CLOSE ; Wurde der rote Button mit dem X (Schließen Button) gedrückt...
$Anzeige = 0 ; ...setze die Variable auf "0"
Case $Tray = $TrayButtonB ; Wurde der Button "Beenden" im SystemTrayMenü gedrückt...
ExitLoop ; ... so verlasse die Schleife
Case $Tray = $TrayButtonA ; Wurde der Button "Anzeigen" im SystemTrayMenü gedrückt...
$Anzeige = 1 ; ... setze die Variable auf "1"
Case $GUI[0] = $ButtonL ; Wurde der button "Laden" gedrückt...
$LadeDatum = InputBox ( "Datum", "Geben Sie das Datum " & "(" & "TT.MM.JJJJ" & ")" & " ein, dessen Tätigkeiten Sie laden möchten.") ; ... Weise der Variable den Inhalt einer InputBox zu
For $z3 = 1 to 10 Step +1 ; Zähle von 1 bis 10 in einer Schritten
$Inhalt[$z3] = IniRead ( "C:\Temp\Tagestätigkeiten.ini", $LadeDatum , $z3, "") ; Lese den Wert eines Schlüssels, innerhalb der *.ini Datei aus und weise sie dem Array zu
Next ; Nächster Zählerdurchlauf
$zweitGUI = GUICreate ( "Tagestätigkeit vom: " & $LadeDatum, 450, 340 ) ; Hier wird das zweite Fenster Erstellt
$InputAbstand = 10 ; Zuweisen des Wertes
For $z4 = 1 to 10 step + 1 ; Zähle von 1 bis 10 in einer Schritten
GUICtrlCreateInput ( $Inhalt[$z4], 20 , $InputAbstand , 420) ; Erstelle eine neue InputBox mit der vorherig ausgelesenen Daten
$InputAbstand = $InputAbstand + 30 ; Erhöhe Variableninhalt um 30
Next ; Nächster Zählerdurchlauf
$ButtonB2 = GUICtrlCreateButton ( "Zurück", (450/2)-(75/2) , 310, 75, 23) ; Erstellen des " Zurück " Buttons
GUISetState ( @SW_SHOW , $zweitGUI ) ; Mache die GUI Sichtbar
Case $GUI[0] = $GUI_EVENT_CLOSE And $GUI[1] = $zweitGUI ; Wenn das GUI Event " Close " in der zweiten GUI auftritt dann...
GUISetState ( @SW_Hide , $zweitGUI ) ; Mache die GUI sichtbar
Case $GUI[0] = $ButtonS ; Wurde der Button "Speichern" gedrückt...
$EtwasEingetragen = 1 ; Setze " Es wurde was eingetragen " auf "1"
For $z5 = 1 To 10 step + 1
$Inhalt[$z5] = GUICtrlRead ( $InputControlIDs[$z5] ); Weise den Inhalt der InputBox dem Array zu
Next
For $z6 = 1 to 10 Step +1 ; Zähle von 1 bis 10 in einer Schritten2
IniWrite ( "C:\Temp\Tagestätigkeiten.ini", @MDAY & "." & @MON & "." & @YEAR , $z6 , $Inhalt[$z6] ) ; Erstelle eine *.ini Datei (Sofern sie noch nicht vorhanden ist) und schreibe in die Section "Datum" den Schlüssel "$z1" mit dem Wert "$Inhalt[$z1]"
Next ; Wiederhole den letzten Vorgang bis "$z1" 10 ist
EndSelect ; Ende des "Select" Vorgangs
WEnd ; Ende der "While" Schleife
#EndRegion