[Newbie]Fehlersuche

  • Hallo Community,
    ich sitz nun schon seit ein paar Stunden an einem Script und scheine irgendwo einen Fehler gemacht zu haben, denn immer wenn ich versuche Befehle für die Buttons im Subfenster einzubringen erkennt er den "Select"-Befehl nicht mehr....
    Naja, ich würde euch bitten einfach mal kurz einen Blick auf den Code zu werfen und mir die Fehlerquelle zu zeigen.
    Außerdem wäre ich euch dankbar für einen kleinen Tipp "wie" bzw. "wo" ich die Befehle für das Sub-Fenster einbringen kann ohne auf derartige Komplikationen zu stoßen

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $Parent = GUICreate("MeineGUI",300,300)
    GUISetState(@sw_show)
    $MESSAGE = "Simpsons"
    $MESSAGE2 = "FamilyGuy"
    $Message3 = "Stromberg"
    ;;;;;;;;;;;;;;;;;;;;;;
    $font = "Comic Sans MS"

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

    ;;;;;;;;;;;;;;;;;

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

    $pic_1=GUICtrlCreatePic("C:\Dokumente und Einstellungen\Phil\Eigene Dateien\temporär.JPG",0,-1,317,35,-1,-1)
    $group_1=GUICtrlCreateGroup("bitte hier den Pfad des ICQ-Ordners angeben",28,38,243,82,-1,-1)
    $input_1=GUICtrlCreateInput("",40,70,151,22,-1,-1)
    $button_1=GUICtrlCreateButton("...",191,70,72,22,-1,-1)
    $list_1=GUICtrlCreateList("",29,139,97,126,-1,-1)
    GUICtrlSetLimit(-1,200) ;
    GUICtrlSetData(-1,$MESSAGE)
    GUICtrlSetData(-1,$MESSAGE2)
    GUICtrlSetFont ( -1,9,400,"", $font)
    GUICtrlSetData(-1,$MESSAGE3)

    $button_2=GUICtrlCreateButton("Backup",157,140,115,30,-1,-1)
    $button_3=GUICtrlCreateButton("Download",157,170,115,30,-1,-1)
    $button_4=GUICtrlCreateButton("öffnen",157,199,115,30,-1,-1)
    $button_5=GUICtrlCreateButton("speichern",157,228,115,30,-1,-1)
    $Label_1=GUICtrlCreateLabel("©VaterGans|>|>|>https://autoit.de/www.test.de",154,285,152,22,-1,-1)
    While 1
    $msg= GUIGetMsg()
    Select
    Case $msg = $button_1
    $sFolder = FileSelectFolder("Wähle den ICQ-Ordner aus.", 1)
    If Not @error = 1 Or $sFolder <> "" Then
    GUICtrlSetData($input_1, $sFolder)
    $Pfad = GUICtrlRead($input_1)
    GUICtrlSetData($input_1,$Pfad)
    EndIf

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

    Case $msg = $button_2 ;;;;;;;;BACKUP
    $Pfad = GUICtrlRead($input_1)
    DirCopy($Pfad,$Pfad & "\ICQ_Backup",1 )

    If FileExists($Pfad & "\ICQ_Backup") Then


    GUICreate("MeineGUI",300,80)
    GUISetState(@sw_show)

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

    $sub_Label1=GUICtrlCreateLabel("Das Backup wurde erfolgreich in ",73,1,156,16,-1,-1)
    $sub_Label2=GUICtrlCreateLabel($Pfad,23,21,156,18,-1,-1)
    $sub_Label3=GUICtrlCreateLabel("gespeichert!",210,19,68,17,-1,-1)
    $sub_button1=GUICtrlCreateButton("Beenden",8,46,94,25,-1,-1)
    $sub_button2=GUICtrlCreateButton("Ordner öffnen",115,46,85,25,-1,-1)
    $sub_button3=GUICtrlCreateButton("Fertig",211,46,80,25,-1,-1)
    EndIf
    EndSelect

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

    WEnd

    [/autoit]

    Vielen Dank im Vorraus für eure Hilfe,
    VaterGans

    Einmal editiert, zuletzt von VaterGans (21. April 2007 um 10:34)

    • Offizieller Beitrag

    Hallo!

    Am besten ist wenn Du alle Gui's am Anfang definierst und dann nur mit GuiSetState die entsprechende Gui ein und ausschaltest.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

    $Parent = GUICreate("MeineGUI",300,300)
    $MESSAGE = "Simpsons"
    $MESSAGE2 = "FamilyGuy"
    $Message3 = "Stromberg"
    ;;;;;;;;;;;;;;;;;;;;;;
    $font = "Comic Sans MS"


    ;;;;;;;;;;;;;;;;;

    $pic_1=GUICtrlCreatePic("C:\Dokumente und Einstellungen\Phil\Eigene Dateien\temporär.JPG",0,-1,317,35,-1,-1)
    $group_1=GUICtrlCreateGroup("bitte hier den Pfad des ICQ-Ordners angeben",28,38,243,82,-1,-1)
    $input_1=GUICtrlCreateInput("",40,70,151,22,-1,-1)
    $button_1=GUICtrlCreateButton("...",191,70,72,22,-1,-1)
    $list_1=GUICtrlCreateList("",29,139,97,126,-1,-1)
    GUICtrlSetLimit(-1,200) ;
    GUICtrlSetData(-1,$MESSAGE)
    GUICtrlSetData(-1,$MESSAGE2)
    GUICtrlSetFont ( -1,9,400,"", $font)
    GUICtrlSetData(-1,$MESSAGE3)

    $button_2=GUICtrlCreateButton("Backup",157,140,115,30,-1,-1)
    $button_3=GUICtrlCreateButton("Download",157,170,115,30,-1,-1)
    $button_4=GUICtrlCreateButton("öffnen",157,199,115,30,-1,-1)
    $button_5=GUICtrlCreateButton("speichern",157,228,115,30,-1,-1)
    $Label_1=GUICtrlCreateLabel("©VaterGans|>|>|>https://autoit.de/www.test.de",154,285,152,22,-1,-1)

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

    $subGui = GUICreate("MeineGUI",300,80)
    $sub_Label1=GUICtrlCreateLabel("Das Backup wurde erfolgreich in ",73,1,156,16,-1,-1)
    $sub_Label2=GUICtrlCreateLabel("",23,21,156,18,-1,-1)
    $sub_Label3=GUICtrlCreateLabel("gespeichert!",210,19,68,17,-1,-1)
    $sub_button1=GUICtrlCreateButton("Beenden",8,46,94,25,-1,-1)
    $sub_button2=GUICtrlCreateButton("Ordner öffnen",115,46,85,25,-1,-1)
    $sub_button3=GUICtrlCreateButton("Fertig",211,46,80,25,-1,-1)

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

    GUISetState(@sw_show, $Parent)

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

    While 1
    $msg= GUIGetMsg()
    Select
    Case $msg = $button_1
    $sFolder = FileSelectFolder("Wähle den ICQ-Ordner aus.", 1)
    If Not @error = 1 Or $sFolder <> "" Then
    GUICtrlSetData($input_1, $sFolder)
    $Pfad = GUICtrlRead($input_1)
    GUICtrlSetData($input_1,$Pfad)
    EndIf



    Case $msg = $button_2 ;;;;;;;;BACKUP
    $Pfad = GUICtrlRead($input_1)
    DirCopy($Pfad,$Pfad & "\ICQ_Backup",1 )

    If FileExists("C:\Programme\ICQ6\ICQ_Backup") Then
    GUICtrlSetData($sub_Label2,$Pfad)
    GUISetState(@SW_SHOW,$subGui)
    EndIf

    Case $msg = $sub_button1
    GUISetState(@SW_HIDE,$subGui)

    EndSelect

    WEnd

    [/autoit]
  • Hey,
    Ich war echt schon fast am :hammer:
    Jetzt funktioniert es wieder und ist außerdem viel übersichtlicher!
    Vielen Dank

    MfG,
    Crom

  • Hi,
    ich schreibe das immer mit Funktionen wenn ich ein GUI im GUI aufrufen möchte.

    Achso und in einer While-schleife solltest du immer versuchen ein "sleep(100)" einzubauen damit dein Script nicht immer mit voll Power durchläuft.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

    $Parent = GUICreate("MeineGUI",300,300)
    GUISetState(@sw_show)
    $MESSAGE = "Simpsons"
    $MESSAGE2 = "FamilyGuy"
    $Message3 = "Stromberg"
    ;;;;;;;;;;;;;;;;;;;;;;
    $font = "Comic Sans MS"


    ;;;;;;;;;;;;;;;;;

    $pic_1=GUICtrlCreatePic("C:\Dokumente und Einstellungen\Phil\Eigene Dateien\temporär.JPG",0,-1,317,35,-1,-1)
    $group_1=GUICtrlCreateGroup("bitte hier den Pfad des ICQ-Ordners angeben",28,38,243,82,-1,-1)
    $input_1=GUICtrlCreateInput("",40,70,151,22,-1,-1)
    $button_1=GUICtrlCreateButton("...",191,70,72,22,-1,-1)
    $list_1=GUICtrlCreateList("",29,139,97,126,-1,-1)
    GUICtrlSetLimit(-1,200) ;
    GUICtrlSetData(-1,$MESSAGE)
    GUICtrlSetData(-1,$MESSAGE2)
    GUICtrlSetFont ( -1,9,400,"", $font)
    GUICtrlSetData(-1,$MESSAGE3)

    $button_2=GUICtrlCreateButton("Backup",157,140,115,30,-1,-1)
    $button_3=GUICtrlCreateButton("Download",157,170,115,30,-1,-1)
    $button_4=GUICtrlCreateButton("öffnen",157,199,115,30,-1,-1)
    $button_5=GUICtrlCreateButton("speichern",157,228,115,30,-1,-1)
    $Label_1=GUICtrlCreateLabel("©VaterGans|>|>|>https://autoit.de/www.test.de",154,285,152,22,-1,-1)
    While 1
    $msg= GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit


    Case $msg = $button_1
    $sFolder = FileSelectFolder("Wähle den ICQ-Ordner aus.", 1)
    If Not @error = 1 Or $sFolder <> "" Then
    GUICtrlSetData($input_1, $sFolder)
    $Pfad = GUICtrlRead($input_1)
    GUICtrlSetData($input_1,$Pfad)
    EndIf

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

    Case $msg = $button_2 ;;;;;;;;BACKUP
    backup()

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

    EndSelect
    sleep(100) ;<------- Immer bei While einfügen !!!!
    WEnd


    Func backup()

    SplashTextOn("","Bitte warten ICQ-Backup wird erstellt!" ,"400","30","-1","-1",33,"Times New Roman","14","700")
    $Pfad = GUICtrlRead($input_1)
    DirCopy($Pfad,$Pfad & "\ICQ_Backup",1 )
    If FileExists($Pfad & "\ICQ_Backup") Then
    SplashOff()
    $gui_button2 = GUICreate("MeineGUI",300,80,-1,-1,BitOR($WS_MINIMIZEBOX,$WS_CAPTION,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUISetState(@sw_show)
    $sub_Label1=GUICtrlCreateLabel("Das Backup wurde erfolgreich in ",73,1,156,16,-1,-1)
    $sub_Label2=GUICtrlCreateLabel($Pfad,23,21,156,18,-1,-1)
    $sub_Label3=GUICtrlCreateLabel("gespeichert!",210,19,68,17,-1,-1)
    $sub_button1=GUICtrlCreateButton("Beenden",8,46,94,25,-1,-1)
    $sub_button2=GUICtrlCreateButton("Ordner öffnen",115,46,85,25,-1,-1)
    $sub_button3=GUICtrlCreateButton("Fertig",211,46,80,25,-1,-1)

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $sub_button1
    GUIDelete($gui_button2)
    GUISetState(@SW_SHOW,$Parent)
    GuiSwitch($Parent)
    ExitLoop

    ;~ Case $msg = $sub_button2

    EndSelect
    sleep(100)
    Wend
    EndIf
    Endfunc

    [/autoit]


    Aber was ich nicht verstehe was sollen das Edit-Feld mit Simpson, Stromberg usw. ???? :hm:

    MfG
    Der_Doc

    • Offizieller Beitrag

    Hallo!

    Das mit dem Sleep kannst Du vernachlässigen wenn GuiGetMsg in der Schleife aufgerufen wird. Steht in der Bemerkung zu GuiGetMsg.

  • Hey ihr,
    Danke erstmal für eure hilfreichen Tipps!

    Zitat

    Achso und in einer While-schleife solltest du immer versuchen ein "sleep(100)" einzubauen damit dein Script nicht immer mit voll Power durchläuft.


    Ich bin eigentlich schon froh wenn es überhaupt läuft *duck* :D
    ....aber ich werde das bei der Nachbearbeitung sicher noch einbauen

    Zitat

    Aber was ich nicht verstehe was sollen das Edit-Feld mit Simpson, Stromberg usw. ????


    Naja, das Script ist natürlich noch lange nicht fertig, deshalb sind manche Funktionen natürlich noch nicht zu verstehen....also:
    Das Script soll die ICQ-Sounds auf Knopfdruck automatisch mit vorher erstellten
    individuellen Sounds ersetzen. "FamilyGuy"und "Stromberg" dienen da nur als Platzhalter und dazu mich selbst an die Funktion dieses Felds zu erinnern.

    MfG,
    VaterGans

    • Offizieller Beitrag

    Der_Doc, die Fehlermeldung kommt aber bestimmt nciht davon das Du ein Sleep entfernt hast! ;)

  • @VaterGans
    achso. Naja dann ist ja alles OK ich habe nämlich als überlegt was die machen ?( . Wegen dem Script ich finde es mit Funktionen übersichtlicher. Aber das ist jedem selber überlassen.


    bernd670
    ja jetzt wo du das sagst. :schild4:
    Es kam ja auch die Meldung: "Tauschen sie ihren Programmierer aus er ist nicht kompatibel zu seinem Quelltext!" :comp2:

    MfG
    Der_Doc

    Einmal editiert, zuletzt von Der_Doc (21. April 2007 um 11:52)