gui hilfe

  • hallo
    ich bin hier neu im forum und habe auch schon ein script gemacht
    aber jetzt mochte ich ein gui machen
    es soll so aussehen
    es gibt von anfang an 2 inputboxen
    und wenn man auf die schaltfläche mehr klickt soll 1 input feld mehr darunter kommen
    dies kann man wiederholen bis man maximal 10 felder hat
    natürlich gibt es auch den schließen buton und den ok buton

    dann möchte ich ein script machen das den inhalt aus dem inputfeld1 schreibt
    5 minuten später aus dem inputfeld 2 und so weiter

    für hilfe binn ich sehr dankbar :D

    Einmal editiert, zuletzt von fabulous (28. November 2008 um 14:07)

  • also so sol das gui ungefähr aussehen

    und wenn man auf "mehr" klickt kommt 1 inputfeld dazu
    wenn man auf "mehr" 2 mal klickt kommen 2 inputfelder dazu
    wenn man auf "mehr" 3 mal klickt kommen 3 inputfelder dazu

    als anhang
    einmal ein bild wie es am anfang ist
    und dann ein bild wie es ist wenn man 3 mal auf "mehr" geklickt hat

    • Offizieller Beitrag

    Wenn Du Deine GUI erstellt hast, dann einfach in der MessageLoop-Schleife ein Case für den "Mehr"-Button einfügen:

    [autoit]


    Switch GUIGetMsg()
    Case $mehr
    GUICtrlCreateInput('', [left], [top], [width], [height])
    [...]
    EndSwitch

    [/autoit]

    Die Werte bei GUICtrlCreateInput entsprechend anpassen. Besonders den Wert für [top] jedesmal erhöhen, damit das neue Inputfeld unter den anderen erscheint.

  • Mit der Funktion

    [autoit]

    WinMove( "title", "text", x, y [, width [, height[, speed]]] )

    [/autoit]

    kannst du die Fenstergröße noch verändern, da wenn du Inputfelder hinzufügst ..muss das Fenster logischerweise auch größer werden.

  • Mit Array geht das z.B. so:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    $GUI = GUICreate("test",400,50)
    Global $Felder[11], $feldhoehe = 20
    _NeuesFeld()
    $MEHR = GUICtrlCreateButton("Mehr",220,10,90,25)
    GUICtrlSetResizing(-1,$GUI_DOCKBottom+$GUI_DOCKSIZE)
    GUISetState()
    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
    Case -3
    Exit
    Case $MEHR
    _NeuesFeld()
    EndSwitch
    WEnd

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

    Func _NeuesFeld()
    If $Felder[0] >= UBound($Felder)-1 Then Return ; Wenn schon 10 da sind, nichts mehr machen
    $Felder[0]+=1
    $Felder[$Felder[0]] = GUICtrlCreateInput("Input " & $Felder[0],10,10+($Felder[0]-1)*($feldhoehe+5),200,$feldhoehe)
    GUICtrlSetResizing(-1,$GUI_DOCKTOP+$GUI_DOCKSIZE)
    WinMove($GUI,"",Default,Default,Default,100+($Felder[0]-2)*($feldhoehe+5))
    If $Felder[0] >= UBound($Felder)-1 Then GUICtrlSetState($MEHR,$GUI_HIDE); Wenn alle erzeugt, den Button verstecken
    EndFunc

    [/autoit]
  • ha hallo das sind dch mal antworten

    bilder sagen mehr als 1000 worte^^

    thx

    die idee von progandy möchte ich so in meinen code einfügen dass es das fenster, wie ich es schon habe, ist
    und bis 5 inputfelder erweitert werden kann

    das ist bis jetzt mein code

    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\bötschi\Desktop\Dateien\koda_1.7.0.1\Forms\bot.kxf
    $Form1_1 = GUICreate("Bot", 345, 125, 300, 30)
    GUISetIcon("C:\WINDOWS\explorer.exe", 9)
    GUISetCursor (0)
    $Button1 = GUICtrlCreateButton("&OK", 250, 10, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("&Schließen", 250, 45, 75, 25, 0)
    $Text1 = GUICtrlCreateInput("Text1", 10, 15, 200, 21)
    $Text2 = GUICtrlCreateInput("Text2", 10, 50, 200, 21)
    $Text3 = GUICtrlCreateInput("Text3", 10, 85, 200, 21)
    $Mehr = GUICtrlCreateButton("Mehr", 225, 100, 50, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    2 Mal editiert, zuletzt von fabulous (16. November 2008 um 15:26)

  • Also dein Script und das von progandy zusammen sieht so aus:
    (es funktioniert natürlich auch schon..)

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GuiConstantsEx.au3>

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

    Global $Felder[11], $feldhoehe = 20

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

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\bötschi\Desktop\Dateien\koda_1.7.0.1\Forms\bot.kxf
    $GUI = GUICreate("Bot", 345, 125, 300, 30)
    GUISetIcon("C:\WINDOWS\explorer.exe", 9)
    GUISetCursor (0)
    $Button1 = GUICtrlCreateButton("&OK", 250, 10, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("&Schließen", 250, 60, 75, 25, 0)
    $MEHR = GUICtrlCreateButton("Mehr", 225, 100, 50, 17)
    GUICtrlSetResizing(-1,$GUI_DOCKBottom+$GUI_DOCKSIZE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    _NeuesFeld()

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

    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
    Case -3
    Exit
    Case $MEHR
    _NeuesFeld()
    EndSwitch
    WEnd

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

    Func _NeuesFeld()
    If $Felder[0] >= UBound($Felder)-1 Then Return
    $Felder[0]+=1
    $Felder[$Felder[0]] = GUICtrlCreateInput("Input " & $Felder[0],10,10+($Felder[0]-1)*($feldhoehe+5),200,$feldhoehe)
    GUICtrlSetResizing(-1,$GUI_DOCKTOP+$GUI_DOCKSIZE)
    WinMove($GUI,"",Default,Default,Default,100+($Felder[0]-2)*($feldhoehe+5))
    If $Felder[0] >= UBound($Felder)-1 Then GUICtrlSetState($MEHR,$GUI_HIDE)
    EndFunc

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