Autor Beitrag
JuriMan
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 30.09.05 21:58 
Moin!

Kann man bei der CheckListBox den einzelnen Items eine Farbe zu ordnen, sei es durch das Färben der Schrift oder irgedwie ein kleines farbiges Quadrat neben der Schrift?

Freue mich auf Vorschläge!

MfG,

Juri


Moderiert von user profile iconGausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 30.09.2005 um 23:00
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: Sa 01.10.05 04:55 
Dazu musst du die Eigenschaft "Style" von TCheckListBox auf lbOwnerDrawFixed setzen und das Ereignis OnDrawItem auswerten.

Beispiel:
ausblenden 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;

ausblenden 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.

_________________
Ciao, Sprint.
JuriMan Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 07.10.05 14:30 
cool, das funktioniert könntest du mir bitte den zweiten quellcode erleutern? malt der code schon die vierecke? oder wie geht das?