pruefen ob checkbox aktiviert ist

  • guten abend,

    ich habe ein Einstellungsfenster, und darin einen Text + checkbox.

    class = Button
    Instance = 1
    Advanced Mode = [CLASS:Button; INSTANCE:1]
    ID = 162

    Text = Ich erkenne diese Bedingungen an. Meine Personalangaben sind korrekt.(Da ist ne checkbox)
    die checkbox ändert Zustand egal ob ich auf den text klicke oder die checkbox direckt.

    Code
    ; Wechsel zum Tab persönliche daten
    		_GUICtrlTab_SetCurFocus($shTab, 2) ; Daten Spielerverzeichniss
    		$sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    		ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")
    		MsgBox(0 + 64, "Hinweis", "verlasse persoenliche daten")

    den Befehl ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")sollte nur ausführen wenn checkbox ohne haken ist


    hat da jemand ne Idee ?

    danke gruss roland

    Einmal editiert, zuletzt von super47 (29. Oktober 2010 um 17:54)

  • Hallo super47,

    mit folgendem Code kannst Du eine Checkbox grundsätzlich aktivieren:

    [autoit]

    ControlSend(Name des Fensters, "", "[CLASS:Button; INSTANCE:1]", "+")

    [/autoit]


    dementsprechend mit

    [autoit]

    ControlSend(Name des Fensters, "", "[CLASS:Button; INSTANCE:1]", "-")

    [/autoit]

    grundsätzlich deaktivieren.

    Der Status der Checkbox ist dabei egal.
    D.h. bei "+" bleibt eine aktivierte Checkbox das auch, ansonsten wird diese aktiviert.
    bei "-" wird eine Checkbox deaktiviert.

    Das Control musst Du vielleicht noch anpassen, da das wahrscheinlich nicht die Checkbox direkt ist.
    ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • guten abend,

    Beitrag von: Schnuffel,

    Danke sehr gute Antwort.....aber : musste erst den fokus auf die zeile (ID = 162) einstellen.siehe code :-((
    ControlSend benötigt noch Flag = 1 .....hmmm sonst nimmt er die zeichen +- nicht

    [autoit]

    ControlFocus($sTitle, "", "162")
    MsgBox(0 + 64, "focus", "ok Fokus hat gewechselt")
    ControlSend($sTitle, "", "[CLASS:Button; INSTANCE:1]","+",1)
    MsgBox(0 + 64, "Hinweis Name schon vorhanden", "Keine Veränderung vorgenommen !!")

    [/autoit]


    sehr lehrreich
    Die frage war aber: Abfrage ob ein oder aus ist........

    Die Antwort von BugFix: (Problem genau getroffen und gelöst)

    [autoit]

    $status = ControlCommand($sTitle, "", "[CLASS:Button; INSTANCE:1]", "IsChecked", "") ; 1 für Checked
    If $status =0 Then ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")

    [/autoit]

    danke beiden für die Antworten.

    gruss roland