GUICtrlCreateCheckbox Schrift ändern
-
- [ gelöst ]
-
MrB -
9. Dezember 2008 um 21:45 -
Geschlossen -
Erledigt
-
-
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!
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 denk ich
Cu
-
- Offizieller Beitrag
Ein bißchen Mathematik und ein paar kleine Änderungen und schon...
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
; Muster Checkbox-Bearbeitung
; Ziel: einfache Abfrage, welche CB aktiviert sind#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
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()While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _Ende()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _ClickCB()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($arCB) -1
If $arCB[$i][0] = @GUI_CtrlId Then
$Checked = BitXOR($Checked, $arCB[$i][1])
ExitLoop
EndIf
Next
_ReadCB()
EndFuncFunc _CheckAll()
[/autoit] [autoit][/autoit] [autoit]
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()
EndFuncFunc _UnCheckAll()
[/autoit] [autoit][/autoit] [autoit]
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()
EndFuncFunc _ReadCB() ; Fkt. dient nur zur Ausgabe, welche CB markiert sind
[/autoit] [autoit][/autoit] [autoit]
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))
EndFuncFunc _Output()
[/autoit]
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 -
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 -