Nach Button click geht nix mehr OO

  • Hio all =)

    Ich sitze nun schon sehr lange daran, aber ohne Erfolg hoffe könnt mia helfen ^^
    Also habe folgendes prob bei meinen Planer, wenn man den "..." Button gedrückt hat saved er bei beiden Guis nix mehr ab.

    So habe schon paar test durchgefürht die das ergaben

    Wenn "..." gedrückt wurde und nix ausgewählt wurde und abgebrochen wurde geht die Save Funktion
    getestet mit ini und ohne ini datei(erstellt die ini)
    Wenn "..." gedrückt wurde und etwas ausgewählt wurde geht nix mehr
    getestet mit und ohne ini datei(erstellt nichtmal eine ini)

    Meiner Vermutung es hängt mit GuicrtlSetState zusammen

    Hier Mein script

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Date.au3>
    #include <DateTimeConstants.au3>
    #include <ButtonConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("TrayOnEventMode", 1)
    Opt("TrayMenuMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("Planer", 200, 320, 400, 100)
    GUISetBkColor(0x00FF80)
    $Datei = GUICtrlCreateMenu("Datei")
    $save = GUICtrlCreateMenuItem("Speichern", $Datei)
    $neuertermin = GUICtrlCreateMenuItem("Neuer Termin",$Datei)
    $open = GUICtrlCreateMenuItem("Öffne Checker", $Datei)
    $Settings = GUICtrlCreateMenu("Settings")
    $Einstellungen = GUICtrlCreateMenuItem("Einstellungen", $Settings)
    $Hilfe = GUICtrlCreateMenu("Hilfe")
    $Info = GUICtrlCreateMenuItem("Info", $Hilfe)
    GUICtrlCreateLabel("Bitte Wählen Sie ein Datum aus :", 25, 20)
    $date = GUICtrlCreateDate("", 10, 40, 180, 20, $DTS_SHORTDATEFORMAT)
    GUICtrlCreateLabel("Uhrzeit wann Erinnern", 10, 73)
    $zeit = GUICtrlCreateDate("", 116, 70, 70, 20, $DTS_TIMEFORMAT)
    GUICtrlCreateLabel("Tätigkeit = ", 20, 120)
    $ttk = GUICtrlCreateCombo("auswählen...", 75, 117, 100)
    GUICtrlSetData(-1, "Nachricht|anderes")
    $nName = GUICtrlCreateInput("", 30, 150, 140, 20)
    $nEreignis = GUICtrlCreateInput("", 30, 180, 140, 20)
    $nExtra = GUICtrlCreateInput("", 30, 210, 140, 70)
    ;groups
    GUICtrlCreateGroup("", 5, 5, 190, 95)
    GUICtrlCreateGroup("", 5, 95, 190, 200)
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "_GUIClose")
    TraySetState(1)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $save
    If $date = "" Then IniWrite("", "", "", "")
    If Not $date = "" Then IniWrite("Termine.ini", "Datum", "", GUICtrlRead($date))
    If $zeit = "" Then IniWrite("", "", "", "")
    If Not $zeit = "" Then IniWrite("Termine.ini", "Uhrzeit", "", GUICtrlRead($zeit))
    If $ttk = "" Then IniWrite("", "", "", "")
    If Not $ttk = "" Then IniWrite("Termine.ini", "Was?", "", GUICtrlRead($ttk))
    If $nName = "" Then IniWrite("", "", "", "")
    If Not $nName = "" Then IniWrite("Termine.ini", "Name", "", GUICtrlRead($nName))
    If $nEreignis = "" Then IniWrite("", "", "", "")
    If Not $nEreignis = "" Then IniWrite("Termine.ini", "Ereignis", "", GUICtrlRead($nEreignis))
    If $nExtra = "" Then IniWrite("", "", "", "")
    If Not $nExtra = "" Then IniWrite("Termine.ini", "Extra Angaben", "", GUICtrlRead($nExtra))
    If @error = 1 Then
    Sleep(250)
    MsgBox(4096, "Planer", "Speichern abgebrochen.")
    EndIf
    If Not @error Then
    Sleep(250)
    MsgBox(4096, "Planer", "Einstellungen Gespeichert")
    EndIf
    Case $open
    $file = FileOpenDialog("Wählen Sie bitte den Termin Checker aus", @ScriptDir, "Alle(*.*)")
    ShellExecute($file)
    Case $Info
    MsgBox(4096, "Planer Hilfe", "1. Damit der Planer arbeiten kann muss zuerst der 'Termine Checker' in den autostart hinzugefügt werden damit er Ihre Termine abrufen kann." & (@CRLF) & "2. Wenn ihr Termin eintritt erhalten Sie eine Naricht mit den festgelegten Infos bei 'Tätigkeit auswählen'." & (@CRLF) & "3. Unter 'Einstellungen' können sie weitere Tätigkeiten des Planers vornhemen." & (@CRLF) & "4. Wenn das 'Planer EInstellungen'-Fenster offen ist können sie keine Funktionen bei dem 'Planer' ausführen, deshalb schließen Sie das 'Planer Einstellungen'-Fenster, um bei den 'Planer'-Fenster weiterzuarbeiten." & (@CRLF) & "" & (@CRLF) & "Ich hoffe er gefällt euch =)" & (@CRLF) & "" & (@CRLF) & "Mady by ScripterDrîzzt from : http://www.autoit.de")
    Case $Einstellungen
    $EinstellungenGUI = GUICreate("Planer Einstellungen", 300, 165, 95, 100)
    GUISetBkColor(0x00FF80)
    $Datei2 = GUICtrlCreateMenu("Datei")
    $save2 = GUICtrlCreateMenuItem("Speichern", $Datei2)
    GUICtrlCreateLabel("Maximal, bitte nur 1 Häckchen in den 3 Boxen setzen", 15, 10)
    GUICtrlSetColor(-1, 0x000080)
    $settings1 = GUICtrlCreateCheckbox("", 15, 28)
    GUICtrlCreateLabel("Wenn Termin eintretet PC Herunterfahren?", 35, 32)
    $settings2 = GUICtrlCreateCheckbox("", 15, 48)
    GUICtrlCreateLabel("Wenn Termin eintretet Neustarten?", 35, 52)
    $settings3 = GUICtrlCreateCheckbox("", 15, 66)
    GUICtrlCreateLabel("Wenn Termin eintretet Benutzer vom PC abmelden?", 35, 72)
    GUICtrlCreateGroup("", 5, 0, 290, 90)
    $settings4 = GUICtrlCreateInput("", 15, 110, 240, 20)
    $Sound = GUICtrlCreateButton("...", 255, 110, 35, 20)
    GUICtrlCreateLabel("Wenn Termin eintretet ein Sound abspielen? Falls Ja dann :", 10, 92)
    GUICtrlCreateGroup("", 5, 0, 290, 140)
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $EinstellungenGUI)
    ExitLoop
    Case $Sound
    $pfad = FileOpenDialog("Bitte ein Sound wählen", @MyDocumentsDir, "Alle(*.*)", 1)
    Sleep(100)
    GUICtrlSetData($settings4, $pfad)
    Case $save2
    If GUICtrlRead($settings1) = 1 Then IniWrite("Termine.ini", "PC Shutdown", "", GUICtrlRead($settings1))
    If GUICtrlRead($settings1) = 4 Then IniWrite("Termine.ini", "PC Shutdown", "", GUICtrlRead($settings1))
    If GUICtrlRead($settings2) = 1 Then IniWrite("Termine.ini", "PC Restart", "", GUICtrlRead($settings2))
    If GUICtrlRead($settings2) = 4 Then IniWrite("Termine.ini", "PC Restart", "", GUICtrlRead($settings2))
    If GUICtrlRead($settings3) = 1 Then IniWrite("Termine.ini", "Abmelden", "", GUICtrlRead($settings3))
    If GUICtrlRead($settings3) = 4 Then IniWrite("Termine.ini", "Abmelden", "", GUICtrlRead($settings3))
    If Not $settings4 = "" Then IniWrite("Termine.ini", "Sound", "Pfad", GUICtrlRead($settings4))
    If @error = 1 Then
    Sleep(250)
    MsgBox(4096, "Planer", "Speichern abgebrochen.")
    EndIf
    If Not @error Then
    Sleep(250)
    MsgBox(4096, "Planer", "Einstellungen Gespeichert")
    EndIf
    EndSwitch
    WEnd
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ttk
    If GUICtrlRead($ttk) = "auswählen..." Then
    GUICtrlSetData($nName, "")
    GUICtrlSetData($nEreignis, "")
    GUICtrlSetData($nExtra, "")
    EndIf
    If GUICtrlRead($ttk) = "Nachricht" Then
    GUICtrlSetData($nName, "")
    GUICtrlSetData($nEreignis, "")
    GUICtrlSetData($nExtra, "")
    GUICtrlSetData($nName, "Name der Person")
    GUICtrlSetData($nEreignis, "Ereignis")
    GUICtrlSetData($nExtra, "Extra angaben")
    EndIf
    If GUICtrlRead($ttk) = "anderes" Then
    GUICtrlSetData($nName, "")
    GUICtrlSetData($nEreignis, "")
    GUICtrlSetData($nExtra, "")
    GUICtrlSetData($nName, "Geben Sie etwas an")
    GUICtrlSetData($nEreignis, "Geben Sie etwas an")
    GUICtrlSetData($nExtra, "Geben Sie etwas an")
    EndIf
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GUIClose()
    Exit
    EndFunc ;==>_GUIClose

    [/autoit]

    Einmal editiert, zuletzt von ScripterDrîzzt (7. August 2009 um 16:35)

  • du musst es doch einfach so machen:

    Spoiler anzeigen

    $datum=GuiCtrlCreateInput( "Gebe das Datum ein", 50 , 40, 50, 60)
    iniwrite( $datum, ;usw.)
    ; und dann wenn dein skript wieder gestartet wird einfach eine Funktion mit iniread machen. Dann hast du es doch schon raus? also ich weiß nciht wo das problem liegt

    Zitat

    Meiner Vermutung es hängt mit GuicrtlSetDate zusammen

    Hier Mein script

    GuiCtrlSetDate gell^^

  • dein es geht um die Funktion bei Einstellungen und dann dort auf "..." button ^^

  • :) Hi,
    hier ein Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region - GUI Create
    $GUI0 = GUICreate('Planer')
    $bnSetting = GUICtrlCreateButton("Einstellungen", 10, 20, 75, 22)
    $GUI1 = GUICreate('Planer Einstellungen')
    $bnSettingClose = GUICtrlCreateButton("zurück", 10, 20, 75, 22)
    GUISetState(@SW_SHOW, $GUI0)
    #EndRegion - GUI Create

    [/autoit] [autoit][/autoit] [autoit]

    #Region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $bnSetting
    GUISetState(@SW_SHOW, $GUI1)
    Case $msg = $bnSettingClose
    GUISetState(@SW_HIDE, $GUI1)
    ;Case $msg =
    ;Case $msg =
    EndSelect
    WEnd
    #EndRegion - GUI SelectLoop

    [/autoit]
  • das hilft mir auch nicht und nochmal zu meinen Problem

    wenn man bei den einstellungs gui auf den "..." Button drückt und ein pfad ausgesucht hat und das dann abspeichern will sagt er mia zwar das er gespeichert hat aba in wahrheit schreibt er nix in die ini (oder erstellt keine,falls keine vorhanden) und das dann auch bei den Planer gui
    das hat zu folge das ich den Planer neu starten muss

  • Spoiler anzeigen
    [autoit]


    ; Der Inhalt der Termine.ini
    ;[Sound]
    ;Pfad=C:\Dokumente und Einstellungen\USER\Eigene Dateien\My Sound\tada.wav

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;### [ ... ]
    Case $Sound
    $pfad = FileOpenDialog("Bitte ein Sound wählen !", @MyDocumentsDir, "Alle(*.*)", 1)
    If @error Then
    MsgBox(4096, "", "Keine Datei(en) ausgewählt")
    Else
    $pfad = StringReplace($pfad, "|", @CRLF)
    GUICtrlSetData($settings4, $pfad)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Deine Einstellungen
    ;$pfad = FileOpenDialog("Bitte ein Sound wählen !", @MyDocumentsDir, "Alle(*.*)", 1)
    ;Sleep(100)
    ;GUICtrlSetData($settings4, $pfad)

    [/autoit] [autoit][/autoit] [autoit]

    ;### Ort der Termine.ini angeben
    Case $save2
    IniWrite(@ScriptDir & "\Termine.ini", "Sound", "Pfad", GUICtrlRead($settings4))
    ;### [ ... ]

    [/autoit]


    Viel Erfolg ! :thumbup:

  • Riesen THX and IDhc PRO4 endlich es läuft un meine neue Version is auch gleich opeb wo man nun 3 Termine Setzem kann =)