Gui inhalt auf ungleiheit überprüfen das dann wenn gleich ein Error ausgibt Wie?

  • Das ist ein Snipsel aus einer eigenen Gui. Ich habe 6 Comboboxen. Dort tragt der benutzer 6 Wehrte ein von a-z zb. Alle wehrte müssen ungleich sein. Keine Dopplung wenn doch eine Dopplung autritt soll eine Fehlermeldung kommen. Mein Arry funktioniert nicht mit den Variablen Variabln. Wie wird das richtig gemacht?

    Kann mir einer Helfen?


    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Dim $ComboTaste[7]
    $ComboTaste[1] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[2] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[3] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[4] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[5] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[6] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)

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

    $i = 1

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

    While ($i <= 5)
    Dim $U = $ComboTaste[$i]
    MsgBox(16, "Warnung", $U , 10)
    $i2 = 1
    While ($i2 <= 5)
    Dim $U2 = $ComboTaste.[$i2]
    MsgBox(16, "Warnung", $U2 , 10)
    If ($U == $U2) Then
    MsgBox(16, "Warnung", "Da ist was gleich!" , 10)
    Exit
    EndIf
    WEnd
    WEnd
    Exit

    [/autoit]

    Einmal editiert, zuletzt von Skar (15. September 2009 um 10:40)

  • Ich gleube ich hab das "#include <Array.au3>" vergessen. Sonst noch was?

    ^^ ich habs poste es Trozdem mal.

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

    #include <Array.au3>
    Dim $ComboTaste[7]
    $ComboTaste[1] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[2] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[3] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[4] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[5] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)
    $ComboTaste[6] = GUICtrlCreateCombo("F3", 182, 573, 89, 25)

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

    $i = 1
    While ($i <= 6)
    $i2 = 1
    While ($i2 <= 6)
    IF ( $i == $i2 ) Then
    $i2 = $i2 + 1
    ElseIf ( $i <> $i2 ) Then
    If ($InhaltT[$i] == $InhaltT[$i2]) Then
    MsgBox(16, "Warnung",$i & " und " &$i2& " sind gleich mit " & $U & "Belegt", 10)
    ElseIf ($InhaltT[$i] <> $InhaltT[$i2]) Then
    EndIf
    EndIf
    $i2 = $i2+1
    WEnd
    $i = $i+1
    WEnd
    MsgBox(0, "ok", "Alles ok!" , 10)
    Exit

    [/autoit]

    2 Mal editiert, zuletzt von Skar (15. September 2009 um 11:31)

  • Die Array.au3 musst du nicht Include da die Array.au3 nur für die Array funktionen ist und nicht für das Array

    Du darfst auch kein While in einem Whil verwenden , da es ja eh schon immer wiederholt wird

    Du hast auch

    $ComboTaste.[$i2]

    Stat $ComboTaste[$i2]

    Du wirst wohl auch jeden einzelnen fall einzeln abfragen müssen da es so glaube ich nicht geht

  • Meine Lösund damit nur etwas anders funzt ^^

    Spoiler anzeigen
    [autoit]


    $i = 1
    Dim $p = 0
    While ($i <= 6)
    $i2 = 1
    While ($i2 <= 6)
    IF ( $i == $i2 ) Then
    $i2 = $i2 + 1
    ElseIf ( $i <> $i2 ) Then
    If ($InhaltT[$i] == $InhaltT[$i2]) Then
    Dim $p = 1
    EndIf
    EndIf
    $i2 = $i2+1
    WEnd
    $i = $i+1
    WEnd
    If ($p == 1 ) Then
    MsgBox(48, "Achtung", "Mehrere Funktionen werden mit derselben Taste gestartet!" , 10)
    MsgBox(64, "Hinweiß", "Wählen Sie für jede Funktion eine Taste! Alt, Ctrl oder Shift können sie wählen wie sie wollen." , 10)
    Else

    [/autoit]
  • Du musst auch noch auslesen was geklickt wurde sonst wartet autoit nicht mit dem einlesen also für jede combo

    [autoit]

    GUICTrlRead($ComboTaste[1])

    [/autoit]

    Und das in der While Schleife

  • Son quatsch. Es funzt so. Hab ja nicht das ganze Skript gepostet. 1k Zeilen ist etwas lang ^^. Ich bekome genau das was ich haben will, Erros gibt es nicht können auch keine entstehen bin mir verdamt sicher^^.