Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Wie färbe ich die Checkbox einer Checklistbox ein?
JoelH - Mo 05.09.16 08:53
Titel: Wie färbe ich die Checkbox einer Checklistbox ein?
Mit folgendem Code färbe ich die Items einer Checklistbox ein, je nachdem ob sie enabled sind oder nicht.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure Tfrm_karte.clb_andere_extrasDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var clb: TCheckListBox; begin clb := TCheckListBox(Control); if clb.Enabled then begin if clb.itemEnabled[index] then begin if odSelected in State then begin clb.Canvas.Brush.Color := clHighlight; clb.Canvas.Font.Color := clWhite; end else begin clb.Canvas.Brush.Color := gi_Color.ofeld; clb.Canvas.Font.Color := clWindowText; end; end else begin clb.Canvas.Brush.Color := gi_Color.rfeld; clb.Canvas.Font.Color := clBtnText; end end else begin clb.Canvas.Brush.Color := gi_Color.rfeld; clb.Canvas.Font.Color := clBtnText; end; clb.Canvas.FillRect(Rect); clb.Canvas.TextOut(Rect.left, Rect.top, clb.Items[Index]); end; |
Leider wirkt sich die Hintergrundfarbe nur auf die Listbox aus, aber nicht auf die Hintergrundfarbe der dazugehörigen Checkbox. Wie komme ich nun an deren Hintergrundfarbe ran?
Delete - Mo 05.09.16 14:22
- Nachträglich durch die Entwickler-Ecke gelöscht -
JoelH - Mo 05.09.16 15:10
Frühlingsrolle hat folgendes geschrieben : |
Guten Tag JoelH,
ich glaube dass die TCheckListBox eine Color Eigenschaft besitzt um den Hintergrund zu färben:
Delphi-Quelltext 1:
| CheckListBox1.Color := clred; | |
Genau das ist das Problem ;-) Diese Eigenschaft benutze ich und genau das bringt das Problem.
Ich habe jetzt mal zwei Pics angehängt. Bei der ersten ist die gesamte Checklistbox disabled. Wie man sieht ist die Backgroundfarbe weiss. Bei zweiterer ist nur ein Item inaktiv. Der Text ist auch richtig hinterlegt, allerdings ist die dazugehörige Checkbox grün, wie die offenen Felder auch, obwohl man erkennen (wenn auch schlecht) das sie disabled ist.
Bearbeiten ( upps, Bilder falsch rum benamst, nicht verwirren lassen ;-) )
Delete - Mo 05.09.16 15:23
- Nachträglich durch die Entwickler-Ecke gelöscht -
JoelH - Mo 05.09.16 15:45
Frühlingsrolle hat folgendes geschrieben : |
Also soll die kleine Fläche rund um die Checkbox in der selben Farbe verlaufen wie das selektierte Item. richtig? Das müsste ich mir nach der Arbeit anschauen. |
Genau. :zustimm: Allerdings nicht des selektierten, sondern des inaktiv geschalteten.
Delete - Mo 05.09.16 18:03
- Nachträglich durch die Entwickler-Ecke gelöscht -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!