Einzelnen Beitrag anzeigen

Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#2

Re: ListBox - Zeile einfärben funktioniert nicht

  Alt 4. Dez 2004, 18:34
Liegt wohl daran, dass du auf komische Weise auf das zu zeichnende Item zugreifst, bei der Textausgabe dann aber richtig machst, so sollte es gehen:
Delphi-Quellcode:
procedure TForm1.lb_debugDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  Col: TColor;
  S: String;
begin
  lb_debug.Canvas.Brush.Color := clWhite;
  lb_debug.Canvas.Pen.Color := clWhite;

  lb_debug.Canvas.Rectangle(Rect);

  S := lb_debug.Items[Index];
  if S[1] = '<then
    Col := clGreen
  else
  if S[1] = '>then
    Col := clRed
  else
    Col := clBlack;

  lb_debug.Canvas.Font.Color := Col;

  lb_debug.Canvas.TextOut(Rect.Left + 1, Rect.Top + 1, lb_debug.Items[Index]);
end;
Die zwei mit "<--" gekenzeichneten Zeilen kannst du auch in OnCreate der Form oder so verschieben, da diese nicht jedesmal beim Zeichnen aufgerufen werden müssen.
Edit: sorry, hatte mich vertan

MfG Pr0g
  Mit Zitat antworten Zitat