Dazu musst du die Eigenschaft "Style" von TCheckListBox auf lbOwnerDrawFixed setzen und das Ereignis OnDrawItem auswerten.
Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.FormCreate(Sender: TObject); begin
with CheckListBox1 do begin Style := lbOwnerDrawFixed; ItemHeight := 16; AddItem('1. Eintrag', TObject(clRed)); AddItem('2. Eintrag', TObject(clBlue)); AddItem('3. Eintrag', TObject(clGreen)); end;
end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.CheckListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var Offset: Integer; begin
with (Control as TCheckListBox) do begin Offset := Canvas.TextHeight('Wp'); Offset := ItemHeight - Offset; Offset := Offset div 2; Canvas.FillRect(Rect); Canvas.Font.Color := TColor(Items.Objects[Index]); Canvas.TextOut(Rect.Left + 2, Rect.Top + Offset, Items.Strings[Index]); end;
end; |
Wenn du willst, dann kannst du vor dem Text auch noch ein farbiges Kästchen malen.
.