Checkbox Problem

  • Hallo.

    Ist es irgendwie möglich, dass eine Checkbox die Reihenfolge einer Funktion ändert?

    Meine Idee ist folgende:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 133, 139, 10, 146, -1,$WS_EX_TOPMOST)
    $Button1 = GUICtrlCreateButton("Ok", 8, 80, 75, 25, 0)
    $Radio1 = GUICtrlCreateRadio("Radio1", 16, 24, 113, 17)
    $Radio2 = GUICtrlCreateRadio("Radio2", 16, 40, 113, 17)
    $Radio3 = GUICtrlCreateRadio("Radio3", 16, 56, 113, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $nMsg = $Button1
    If BitAND(GUICtrlRead($Radio1),$GUI_CHECKED)=$GUI_CHECKED Then
    erste()
    Elseif BitAND(GUICtrlRead($Radio2),$GUI_CHECKED)=$GUI_CHECKED Then
    zweite()
    Elseif BitAND(GUICtrlRead($Radio2),$GUI_CHECKED)=$GUI_CHECKED Then
    dritte()
    Exit

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

    EndSwitch
    WEnd

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

    Func erste()
    MouseClick("left",551,432,1)
    Sleep(2000)
    MouseClick("left",769,293,1)
    Sleep(2000)
    erste2()
    MouseClick("left",798,630,1)
    EndFunc

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

    Func erste2()
    MouseClick("left",701,334,1);1
    Sleep(500)
    MouseClick("left",331,441,1);2
    Sleep(500)
    MouseClick("left",523,336,1) ;3
    Sleep(500)
    MouseClick("left",517,441,1);4
    Sleep(500)
    MouseClick("left",332,334,1);5
    Sleep(500)
    EndFunc

    [/autoit]

    Nun soll es noch 5 Checkboxen geben, die die Funktion erste2 verändern.
    Jede der Checkboxen steht für ein Paket, das so aussieht:

    Spoiler anzeigen
    [autoit]

    MouseClick("left",332,334,1);5
    Sleep(500)

    [/autoit]


    Hier wäre es demnach Checkbox 5.

    Wichtig ist also, dass ich die Reihenfolge der Funktion erste2 (1-5) durch Checkboxen ändern kann; z.B. zu 2,4,1,5,3 von der ursprünglichen 1,2,3,4,5.

    Ich versuche es durch Funktionen, weil ich keine bessere Lösung kenne.. wenn einer weiß wie es eleganter gehen würde, dann wäre ich für alle Vorschläge zu haben. :)

    Liebe Grüße, geradeStudent.

    Einmal editiert, zuletzt von geradeStudent (12. Januar 2012 um 11:15)

  • wie hast du vor durch checkboxen reihenfolgen zu ändern?

    meinst du das 1ne checkbox nun für eine reihenfolge steht? also wenn checkkbox 1 gedrückt ist dann reihenfolge 1,2,3,4,5, bei checkbox 2 dann 2,3,1,4,5 ?
    Wie auch immer du es meintest würde ich es denk ich so realisieren:

    Spoiler anzeigen
    [autoit]

    Global $coordinates[5][2] ;Array welches alle Koordinaten enthält Nur 0-4 als ArrayIndex verwenden!
    $coordinates[0][0] = 701 ;X-1
    $coordinates[0][1] = 334 ;Y-1
    $coordinates[1][0] = 331 ;X-2
    $coordinates[1][0] = 441 ;Y-2
    $coordinates[2][1] = 523
    $coordinates[2][0] = 336
    $coordinates[3][1] = 517
    $coordinates[3][0] = 441
    $coordinates[4][1] = 332
    $coordinates[4][0] = 334

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

    erste2(0,1,2,3,4) ;Funktionsaufuf, Koordinaten werden in dieser reihenfolge geklickt
    erste2(4,3,1,0,2) ;Funktionsaufuf, Koordinaten werden in dieser reihenfolge geklickt

    Func erste2($first,$second,$third,$fourth,$fith)

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

    MouseClick("left",$coordinates[$first][0],$coordinates[$first][1],1)
    Sleep(500)
    MouseClick("left",$coordinates[$second][0],$coordinates[$second][1],1)
    Sleep(500)
    MouseClick("left",$coordinates[$third][0],$coordinates[$third][1],1)
    Sleep(500)
    MouseClick("left",$coordinates[$fourth][0],$coordinates[$fourth][1],1)
    Sleep(500)
    MouseClick("left",$coordinates[$fith][0],$coordinates[$fith][1],1)
    Sleep(500)

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

    EndFunc

    [/autoit]
  • Hat sich schon erledigt :)
    Ich bin selbst drauf gekommen.

    Habs mit einer If Then Geschichte gemacht. :)
    Hab anstatt Checkboxen nen Input gemacht mit 1-5 und dann damit die Reihenfolge festgelegt.

    Aber danke für die Hilfe!

    Gute Nacht :)