GUICtrlCreateCheckbox Schrift ändern

  • Ich glaub so langsam kapier ichs

    Das wars was ich suchte

    Code
    Global $arCBNames = StringSplit('aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,mmm,nnn,ooo,ppp,qqq,rrr,sss,ttt,uuu', ',')

    THX Oscar

  • AAALLLLSSOOO,

    Ich habs jetzt soweit intergriert das es läuft. Naja, so ziemleich.

    Für alle die es wissen wollen, kapiert habe ichs nicht wirklich! :cursing:

    3 Fragen habe ich noch:
    1. wie bekomme ich es hin das die Boxen in 3 spalten angezeigt werden
    2. und wie bekomme ich vor und nach jedem Wert Anführungstriche?
    3. Wie bekomme ich es hin das das Script auch im nicht OnEvent Modus läuft. Müsste sonst alles umschreiben. Wenn ich den nämlich weglasse funktioniert nix und script hängt sich auf.

    Vergesst Frage 3! Hab mich mal näher damit befasst und alles umgeschrieben. Gefällt mir sogar besser

    Wenn ihr mir das noch sagt seid ihr mich los :D denk ich

    Cu

    Einmal editiert, zuletzt von MrB (11. Dezember 2008 um 19:02)

    • Offizieller Beitrag

    Ein bißchen Mathematik und ein paar kleine Änderungen und schon...

    Spoiler anzeigen
    [autoit]


    ; Muster Checkbox-Bearbeitung
    ; Ziel: einfache Abfrage, welche CB aktiviert sind

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

    #include <GUIConstants.au3>
    Opt('GUIOnEventMode', 1)
    Opt("MustDeclareVars", 1)
    Global $bCheckAll, $bUnCheckAll, $GUI, $i, $str, $bOutput
    Global $arCBNames = StringSplit('aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,mmm,nnn,ooo,ppp,qqq,rrr,sss,ttt,uuu,vvv', ',')
    Global $arCB[21][3] ; Array für Handle und Dual-Wert der CB
    Global $Checked = 0 ; Variable nimmt Status ALLER Checkboxen in einem Wert auf,
    ; Startstatus für alle: UNCHECKED
    Global $w = 600, $h = 20*30+40, $l = (@DesktopWidth-$w)/2, $t = (@DesktopHeight-$h)/2
    $GUI = GUICreate('Test Checkbox', $w, $h, $l, $t)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
    For $i = 0 To UBound($arCB) -1
    $arCB[$i][1] = 2^$i ; Zuweisung eindeutiger Wert
    $arCB[$i][0] = GUICtrlCreateCheckbox('"' & $arCBNames[$i+1] & '"', 20+Int($i/7)*100, 20+Mod($i,7)*30, 90, 20)
    GUICtrlSetOnEvent(-1, '_ClickCB')
    Next
    $bCheckAll = GUICtrlCreateButton('Alle markieren', 400, 20, 150, 21)
    GUICtrlSetOnEvent(-1, '_CheckAll')
    $bUnCheckAll = GUICtrlCreateButton('Markierung aufheben', 400, 50, 150, 21)
    GUICtrlSetOnEvent(-1, '_UnCheckAll')
    $bOutput = GUICtrlCreateButton('MsgBox-Ausgabe', 400, 80, 150, 21)
    GUICtrlSetOnEvent(-1, '_Output')
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _ClickCB()
    For $i = 0 To UBound($arCB) -1
    If $arCB[$i][0] = @GUI_CtrlId Then
    $Checked = BitXOR($Checked, $arCB[$i][1])
    ExitLoop
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _CheckAll()
    For $i = 0 To UBound($arCB) -1
    If Not BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_CHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _UnCheckAll()
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_UNCHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _ReadCB() ; Fkt. dient nur zur Ausgabe, welche CB markiert sind
    Local $str = 'Markiert: '
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= $i+1 & ', '
    Next
    WinSetTitle($GUI, '', StringTrimRight($str, 2))
    EndFunc

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

    Func _Output()
    Local $str = ''
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= '"' & $arCBNames[$i+1] & '", '
    Next
    MsgBox(0, 'Ausgabe', StringTrimRight($str, 2))
    EndFunc

    [/autoit]
  • LOL, der Spruch ist gut!! Du verstehst wenigstens was du da machst ;)

    Dank dir auf jeden Fall habs integriert und angepasst. Läuft jetzt alles super!!

    Vielen Dank an alle die geholfen haben
    Grüße
    Balti