Code: Alles auswählen
;+----------------------------------------------------------------------+
;| PureBasic-QuellCode "CheckBox_ColorI" mit allen ModulBody´s |
;|erstellt durch Programm "PB_Mod2Body", Vers. 11225a am 06.02.12, 11:37|
;+----------------------------------------------------------------------+
;Modul CheckBox_Color Version 1.00 vom 22.01.2009
#PB_Vers = "4.20"
;
;Funktion: versieht ListIcon mit farbigen Checkboxen (generell, für alle Zeilen)
; Ein bestehendes ListIcon mit Option #PB_ListIcon_CheckBoxes kann
; mit dieser Funktion mit farbigen Checkboxen versehen werden: jeweils
; Rahmen- und Füll-Farbe für markiert und de-markiert sind änderbar,
; ebenso die Farbe des Markierungs-Kreutzes.
; Neben hübschem Layout können durch Farben-Gleichheit auch Checkboxes
; ausgeblendet werden, ohne Kreutz markiert werden (z.Bsp. Rahmen und
; Fill = rot (mark) oder grün (de-mark) und weitere Sonderfunktionen
; realisiert werden...
;
;Aufruf: LI_CheckBox_Color(GadNr {,RGB_Mark {,RGB_Fill1 {,RGB_Rahmen1 {,RGB_Fill0 {,RGB_Rahmen0}}}}})
; GadNr = #GadgetNr des ListIcon´s
; RGB_Mark = RGB-Farbwert des kreutzes, wenn Zeile markiert. Wenn nicht
; angegeben, so wird blau benutzt
; RGB_Fill1 = RGB-Farbwert des Box-Hintergrundes, wenn Zeile markiert.
; Wenn nicht angegeben, so wird weiss benutzt
; RGB_Rahmen1= RGB-Farbwert des Box-Rahmens, wenn Zeile markiert. Wenn
; nicht angegeben, so wird schwarz benutzt
; RGB_Fill0 = RGB-Farbwert des Box-Hintergrundes, wenn Zeile de-markiert.
; Wenn nicht angegeben, so wird weiss benutzt
; RGB_Rahmen0= RGB-Farbwert des Box-Rahmens, wenn Zeile de-markiert. Wenn
; nicht angegeben, so wird schwarz benutzt
; Werden keine Farb-Parameter angegeben, so erfolgt die Darstellung der
; Checkboxes standartgemäß (schwarzer Rahmen, weisser Hintergrund, schwarzes
; Kreutz...
;
; Diese Funktion muss nach dem Aufbau des ListIcon´s mit Option "#PB_ListIcon_CheckBoxes"
; und auch nach einer Font-Zuweisung aufgerufen werden (Größe der Check=
; boxen abhängig von Font-Size).
; Mehrfach-Aufruf auf einem ListIcon möglich, ebenso Aufrufe für diverse
; ListIcon´s...
;
;#jaPBeExt exit
;========== Begin Modul "TextHoch.PBI" ==========
;Modul TextHoch Version 1.1 vom 01.10.2008
#PB_Vers = "4.20"
;
;Funktion: liefert Höhe eines Font´s [Dot´s]
;
;Aufruf: TextHoch.l = TextHoch(FontID)
Procedure TextHoch(TH_FontID) ;- Texthöhe [Dot´s] bestimmen
Protected DC, TM.TEXTMETRIC
DC = GetDC_(GetDesktopWindow_())
If DC
SelectObject_(DC,TH_FontID)
GetTextMetrics_(DC,TM)
EndIf
ProcedureReturn TM\tmHeight
EndProcedure
;========== Ende Modul "TextHoch.PBI" ==========
Procedure LI_CheckBox_Color(TabNr, RGB_Mark = #Blue, RGB_Fill1 = #White , RGB_Rahmen1 = #Black, RGB_Fill0 = #White, RGB_Rahmen0 = #Black)
Protected BoxSize = TextHoch(GetGadgetFont(TabNr))
Protected BildNr = CreateImage(#PB_Any, BoxSize, BoxSize)
Protected itemChecked = ImageID(BildNr)
Protected Rahmen = BoxSize / 8 : If Rahmen<1 : Rahmen=1 : EndIf
StartDrawing(ImageOutput(BildNr))
Box(0, 0, BoxSize, BoxSize, RGB_Rahmen1)
Box(Rahmen, Rahmen, BoxSize - Rahmen - Rahmen, BoxSize - Rahmen - Rahmen, RGB_Fill1)
LineXY(4, 4, BoxSize - 5, BoxSize - 5, RGB_Mark)
LineXY(5, 4, BoxSize - 5, BoxSize - 6, RGB_Mark)
LineXY(4, 5, BoxSize - 6, BoxSize - 5, RGB_Mark)
LineXY(4, BoxSize - 5, BoxSize - 5, 4, RGB_Mark)
LineXY(4, BoxSize - 6, BoxSize - 6, 4, RGB_Mark)
LineXY(5, BoxSize - 5, BoxSize - 5, 5, RGB_Mark)
StopDrawing()
BildNr = CreateImage(#PB_Any, BoxSize, BoxSize)
Protected itemUnchecked = ImageID(BildNr)
StartDrawing(ImageOutput(BildNr))
Box(0, 0, BoxSize, BoxSize, RGB_Rahmen0)
Box(Rahmen, Rahmen, BoxSize - Rahmen - Rahmen, BoxSize - Rahmen - Rahmen, RGB_Fill0)
StopDrawing()
Protected stateImageList = ImageList_Create_(BoxSize, BoxSize, #ILC_MASK|#ILC_COLOR32, 0, 2)
ImageList_Add_(stateImageList, itemUnchecked, 0)
ImageList_Add_(stateImageList, itemChecked, 0)
SendMessage_(GadgetID(TabNr), #LVM_SETIMAGELIST, #LVSIL_STATE, stateImageList)
EndProcedure
Viel Erfolg...