Hilfe bei Do ... Until bitte

  • Spoiler anzeigen

    #include


    #Region ### START Koda GUI section ### Form=

    $Form1 = GUICreate("Dicke Kartoffeln", 268, 130, 467, 293)

    GUISetBkColor(0x648BCB)

    $Input1 = GUICtrlCreateInput("", 120, 40, 121, 21)

    $Label1 = GUICtrlCreateLabel("Spieleranzahl: ", 40, 40, 79, 17)

    GUICtrlSetBkColor(-1, 0xE0E2EB)

    $Button1 = GUICtrlCreateButton("Schließen", 96, 88, 65, 17, 0)

    $Button2 = GUICtrlCreateButton("Bestätigen", 40, 65, 56, 20)

    GUISetState(@SW_SHOW)

    #EndRegion ### END Koda GUI section ###


    While 1

    $nMsg = GUIGetMsg()

    Switch $nMsg

    Case $GUI_EVENT_CLOSE

    Exit

    Case $Button1

    Exit

    Case $Button2

    $read = GUICtrlRead ( $Input1 )

    GUIDelete ()

    Do
    #include

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Dicke Eier", 289, 129, 214, 129)
    GUISetBkColor(0x648BCB)
    $Input2 = GUICtrlCreateInput("", 112, 40, 145, 21)
    $Button2 = GUICtrlCreateButton("Bestätigen", 152, 80, 75, 25, 0)
    $Label2 = GUICtrlCreateLabel("Name Spieler1:", 16, 40, 76, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    $Spieler1 = GUICtrlRead ( $Input2 )
    GUIDelete ()
    Until $Input1 <

    EndSwitch
    WEnd

    EndSwitch
    WEnd



    Also er im ersten Fenster gibt man die SpielerAnzahl ein z.B. 5 spieler Danach soll er Ein Gui fenster machen das er immer wieder Neu macht und immer wieder den Namen der Spieler eingeben kann bis man es 5 mal gemacht hat. Also Until $Input1 < gui fenster anzahl oder so ?? Help :S

    E : achja und das Gui Fenster muss bei manchen sachen immer +1 haben Also da steht ja Name Spieler2 und beim nächsten Gui Fenster muss ja Name Spieler3 da stehen :huh:

    Einmal editiert, zuletzt von Greek (14. Juni 2008 um 12:23)

  • For ... Next ist wohl die bessere Schleife.

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    Global $spieler[100]

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

    $Form1 = GUICreate("Dicke Kartoffeln", 268, 130, 467, 293)
    GUISetBkColor(0x648BCB)

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

    $Input1 = GUICtrlCreateInput("", 120, 40, 121, 21)
    $Label1 = GUICtrlCreateLabel("Spieleranzahl: ", 40, 43, 79, 17)
    GUICtrlSetBkColor(-1, 0xE0E2EB)

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

    $Button1 = GUICtrlCreateButton("Schließen", 96, 88, 65, 17, 0)
    $Button2 = GUICtrlCreateButton("Bestätigen", 40, 65, 56, 20)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Exit
    Case $Button2
    $spieleranzahl = GUICtrlRead($Input1)
    GUIDelete($Form1)
    ExitLoop
    EndSwitch
    WEnd

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

    For $i = 1 To $spieleranzahl
    $Form2 = GUICreate("Dicke Eier", 289, 129, 214, 129)
    GUISetBkColor(0x648BCB)
    $Input2 = GUICtrlCreateInput("", 112, 40, 145, 21)
    $Button2 = GUICtrlCreateButton("Bestätigen", 152, 80, 75, 25, 0)
    $Label2 = GUICtrlCreateLabel("Name Spieler" & $i & ":", 16, 40, 76, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    $spieler[$i] = GUICtrlRead($Input2)
    GUIDelete($Form2)
    ExitLoop
    EndSwitch
    WEnd
    Next

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

    $spieleranzeige = ""
    For $i = 1 To $spieleranzahl
    $spieleranzeige &= $spieler[$i] & @CRLF
    Next

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

    MsgBox(0, "", $spieleranzeige)

    [/autoit]
  • Ich habe auch noch ein Beispiel gebastelt, habe auch etwas Kommentar mit rein geschrieben.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <array.au3>

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

    #Region ### START Koda GUI section ### Form=
    $frm_Main = GUICreate("Dicke Kartoffeln", 268, 130, 467, 293)
    GUISetBkColor(0x648BCB)
    $inp_Anzahl = GUICtrlCreateInput("", 120, 40, 121, 21)
    $lbl_Anzahl = GUICtrlCreateLabel("Spieleranzahl: ", 40, 43, 79, 17)
    GUICtrlSetBkColor(-1, 0x648BCB)
    $btn_Schliessen = GUICtrlCreateButton("Schließen", 145, 65, 70, 20)
    $btn_Bestaetigen = GUICtrlCreateButton("Bestätigen", 65, 65, 70, 20)
    $btn_Anzeigen = GUICtrlCreateButton("Spieler anzeigen", 100, 90, 90, 20)
    GUICtrlSetState(-1,$GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Dim $int_anzahl = 0 ;Anzahl der eigebenen Spieler
    Dim $arr_namen[1] ;Array für die Spielernamen

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_Schliessen
    Exit
    Case $btn_Bestaetigen
    $int_anzahl = GUICtrlRead($inp_Anzahl)
    GUISetState(@SW_HIDE) ;Verstecken von dem Hauptfenster
    For $x = 1 To $int_anzahl ;Schleife, wird so oft durchlaufen wie Anzahl eingetragen wurde
    _AbfrageNamen($x) ;Aufruf der Funktion zum Abfragen der Spielernamen
    Next
    GUICtrlSetState($btn_Anzeigen,$GUI_ENABLE) ;Hier wird der Button aktiviert um sich die eingegbenen Spielernamen anzueigen zu lassen
    GUISetState(@SW_SHOW) ;Anzeigen vom Hauptfenster
    Case $btn_Anzeigen
    _SpielerAnzeigen() ;Anzeigen welche Spielernamen eingetragen wurden.
    EndSwitch
    WEnd

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

    Func _SpielerAnzeigen() ;Funktion zum anzeigen der Spielernamen
    #cs
    Es wird hier eine Schleife durchlaufen, sie gibt mit hilfe von
    der StringFormat Funktion die einzelen Spielernamen aus.
    #ce
    For $x = 1 To UBound($arr_namen) -1
    MsgBox(64,'Spieler',StringFormat('Spieler %s: %s',$x,$arr_namen[$x]))
    Next
    EndFunc

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

    Func _AbfrageNamen($Spielernummer) ;Funktion zur eingabe der Spielernamen

    Dim $str_Lable = StringFormat("Name Spieler %s",$Spielernummer) ;Hier wird das Label zusammen gebaut: Name Spieler 1, Name Spieler 2, .....
    ;Die aktuelle Spielernummer wird beim Aufruf mit übergeben.

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Dicke Eier", 289, 129, 214, 129)
    GUISetBkColor(0x648BCB)
    $Input2 = GUICtrlCreateInput("", 112, 40, 145, 21)
    $Button2 = GUICtrlCreateButton("Bestätigen", 152, 80, 75, 25, 0)
    $Label2 = GUICtrlCreateLabel($str_Lable, 16, 40, 76, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($Form2)
    ExitLoop
    Case $Button2
    _ArrayAdd($arr_namen,GUICtrlRead($Input2)) ;Dem Array wird ein Spielername hinzugefügt.
    GUIDelete($Form2)
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)