ich weiss ein viel diskutiertes Thema. dennoch komm ich auch nach dem Studium von x threads hier im Forum nicht weiter.
in meiner Listbox möchte ich ausgewählte Einträge einfärben.
habe die listboxdrawitem procedure wie folgt angepasst:
Delphi-Quellcode:
procedure Tmainform.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (control as TListBox) do
begin
if Index = 2 then //bei best. Zeile soll folgendes gelten
begin
Canvas.Brush.Color := clRed;
Canvas.Pen.Color := clWhite;
Canvas.Rectangle(Rect);
end;
Canvas.TextOut(Rect.Left + 1, Rect.Top + 1, Items[Index]);
end;
end;
der richtige Eintrag wird zwar auch richtig eingefärbt, jedoch ziemlich "verstümelt" - bei allen anderen zeilen habe ich nur noch das Wort des Eintrags markiert und gefärbt. Der Rest ist ein komischer Rahmen und alle sein bisschen schief. Ich weiss nicht wie ich das beschreiben soll?!
habe bei der Listbox eingestellt: lbOwnerDrawFixed
Die Einträge fülle ich normal mit listbox.items.add ein.
kann mir einer sagen warum das so komisch aussieht?