Mehrere GUIs erstellen

  • Hi,
    bin dabei nen kleines Fun-Game zu machen, indem an unterschiedlichen Positionen GUIs erscheinen und man so schnell wie möglich alle wegclicken muss.
    Auch wenns nicht so toll ist, es soll ja nur zu Übungszwecken sein ;) .

    Hab es auch schon fast fertig, jedoch ziemlich umständlich da ich jede einzelne GUI erstelle also:

    [autoit]


    $Form1 = GUICreate("Form1", 188, 135, $random1, $random2y,BitOR($WS_CAPTION,$WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Label1 = GUICtrlCreateLabel("Label1", 80, 24, 36, 17)
    $Button1 = GUICtrlCreateButton("Button1", 64, 80, 75, 25, $WS_GROUP)

    [/autoit]

    Kann man vielleicht irgendwie mehere aufeinmal erstellen?
    Vlt mit ner For Schleife?
    Habe es versucht hat aber leider nicht geklappt.

    Da es ja darum geht so schnell wie möglich alle GUIs wegzuklicken, musste man verhindern das man sie mit der Enter-Taste schließen kann.
    Gibt es da eine Möglichkeit?

    Bin um jede Hilfe erfreut :P .

    MfG

    Bladerunner

    Einmal editiert, zuletzt von Bladerunner85 (16. Juli 2010 um 11:54)

  • So erstellst du GUI's in einer For-Next schleife.

    [autoit]

    Dim $GUI[10]
    Dim $Button[10]
    Global $x = 100, $y = 100

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

    For $i = 0 to 9
    $GUI[$i] = GUICreate("GUI "&$i,200,300,$x,$y)
    $Button[$i] = GUICtrlCreateButton("Button "&$i,50,50)
    $x += 50
    $y += 25
    GUISetState()
    Next

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

    While GUIGetMsg() <> -3 * Sleep(10)
    WEnd

    [/autoit]
  • [autoit]


    HotKeySet("{ENTER}", "")
    $max = 0 ;Hier die Fenster anzahl anzeigen.
    $schleife = 0

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

    while $schleife < $max
    $Form1 = GUICreate("Form1", 188, 135, $random1, $random2y,BitOR($WS_CAPTION,$WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Label1 = GUICtrlCreateLabel("Label1", 80, 24, 36, 17)
    $Button1 = GUICtrlCreateButton("Button1", 64, 80, 75, 25, $WS_GROUP)
    $schleife = $schleife + 1
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • Hi,
    danke funktioniert genauso wie ich wollte ;) .

    Wenn du mir noch sagen könntest, was ich machen muss damit das GUI bei Click auf den Button schließt, wäre es perfekt. :D

    MfG

    Bladerunner

  • So im GetMsg-Mode

    Spoiler anzeigen
    [autoit]

    Dim $GUI[10]
    Dim $Button[10]
    Global $x = 100, $y = 100

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

    For $i = 0 to 9
    $GUI[$i] = GUICreate("GUI "&$i,200,300,$x,$y)
    $Button[$i] = GUICtrlCreateButton("Button "&$i,50,50)
    $x += 50
    $y += 25
    GUISetState()
    Next

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[0]
    Case $Button[0] to $Button[9]
    GUIDelete($msg[1])
    EndSwitch
    WEnd

    [/autoit]

    Und so im OnEvent Mode

    Spoiler anzeigen
    [autoit]

    Global $x = 100, $y = 100
    Opt("GUIOnEventMode",1)

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

    For $i = 0 to 9
    GUICreate("GUI "&$i,200,300,$x,$y)
    GUICtrlCreateButton("Button "&$i,50,50)
    GUICtrlSetOnEvent(-1,"_Close_GUI")
    $x += 50
    $y += 25
    GUISetState()
    Next

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

    While 1
    Sleep(10)
    WEnd

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

    Func _Close_GUI()
    GUIDelete(@GUI_WinHandle)
    EndFunc

    [/autoit]
  • Da es ja darum geht so schnell wie möglich alle GUIs wegzuklicken, musste man verhindern das man sie mit der Enter-Taste schließen kann.

    Kennt dafür noch jemand ne Lösung?

    MfG

    Bladerunner