mehrere Forms

  • Hallo,

    ich möchte gerne mein Script in mehrere Teile aufsplitten.
    1. Hauptfenster.au3 ; meine Benutzeroberfläche
    2. Suche.au3 ; ein Suchfenster
    3. Adresse.au3; ein Inputfenster

    In einem Script sieht das so normal so aus: (kleines Beispiel)

    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    ;Form1
    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Button1 = GUICtrlCreateButton("Adresse", 48, 40, 75, 25)
    GUISetState(@SW_SHOW)
    ;Form1 Ende

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

    ;Form2
    $Form2 = GUICreate("Form2", 562, 77, 209, 250)
    $Input1 = GUICtrlCreateInput("Input1", 400, 48, 121, 21)
    $Label1 = GUICtrlCreateLabel("Name", 360, 48, 32, 17)
    GUISetState(@SW_SHOW)

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

    ;Form2 Ende

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
    Case $Form1
    Switch $nMsg[0]
    Case $Button1
    MsgBox(0,"INFO","Du hast auf Adresse geklickt")
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Switch $nMsg[0]
    Case $Form2
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    Meine Frage:
    Wenn ich z.B. eine Unterform (z.B. Suchformular.au3) kpl. fertig habe,
    (mit Design, Buttons, Labels...) also viel Code...
    kann ich dieses Suchformular dann im Hauptformular (button Suche) irgendwie ohne den kpl. Code
    einzufügen abrufen?

    [autoit]


    Case $ButtonSuche;
    _Suchformular

    [/autoit]


    Auf was muß man alles achten
    ohne mit den Variablen...durcheinander zu kommen.
    Das Suchformular hat ja auch #include Dateien...
    Muß ich die Suche.au3 und Adresse.au3...jeweils als externe Funktion machen?

    Wie macht man das am besten?
    Bin mir noch nicht so ganz im klaren!

    Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (17. November 2010 um 15:52)

  • #include kannnst als Platzhalter verstehen. Der komplette Code den in der include datei hast wird sozusagen einfach die dieser Position eingefügt.

    Einfach mit #include einbinden allerdings ohne "<" und ">". Ausführlich findest du das in der Hilfe beschrieben.

    P.s. langsam interessiert mich das doch was das werden soll. Wir haben bei dir jetzt Hunde, Links zum auslesen, Suchfelder zum Eintragen und Transpartne GUIs.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Du kannst auch #region/#endregion verwenden. Dann kannst du den Code ein- und aufklappen für bessere Lesbarkeit. Oder du erstellst die ganzen Elemente mit einem Array und einer For-Schleife. Ich mach das so, wenn ich ganz viele Controls habe.

  • prima daß man das so lösen kann.

    chip
    habe mir das in der Hilfe angesehen
    ich dachte daß include generell immer am Anfang eingebunden wird.
    Dank dir, wieder etwas gelernt.

    @ m-obi
    eine kurze Frage hierzu

    Zitat

    #region/#endregion verwenden. Dann kannst du den Code ein- und aufklappen für bessere Lesbarkeit

    Ich muß also den Code so einfügen:

    [autoit]


    Case $Autoit
    #region
    #include "TIME.AU3"
    #endregion

    [/autoit]

    und noch eine kurze Frage hierz

    Zitat

    Oder du erstellst die ganzen Elemente mit einem Array und einer For-Schleife

    hm...das muß ich aber noch lernen.
    Du meinst wenn ich z.B. 20 Checkboxen habe und 20 Inputfelder mit Labels
    dann kann ich das ganze mit Arrays lösen (ohne Koda :) )
    ist das nicht zu aufwendig, ich meine wegen den Abständen, Positionen...?

    Grüße
    Ilse ;)