Einzelnen Beitrag anzeigen

Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Zeilen in einer Listbox färben

  Alt 14. Apr 2006, 08:47
Hi,

die Suche ergab bei mir zwar einige Treffer, jedoch wurde ich aus den Lösungen nicht schlau. Ich habe eine Listbox, die ich mit Einträgen fülle. Jetzt möchte ich eine Zeile färben, und zwar diese, die ich gerade eintrage. Am liebsten wäre es mir, wenn ich die Schriftfarbe ändern kann, aber die Hintergrundfarbe kann ich, wenn es nicht anders geht, auch ändern.

Wie mache ich das jetzt?

Ich fand u.a. folgenden Code, verstehe ihn aber immer noch nicht:

Delphi-Quellcode:
procedure TFmLog.OnDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  TopDif: Integer; // Gleicht die Höhendifferenz aus
begin
  with (Control as TListbox) do begin
    Canvas.Brush.Color := GetBackColor(Items[Index]); // <===
    Canvas.Font.Color := clBlack; //Schriftfarbe

    TopDif := (ItemHeight div 2) - (Canvas.TextHeight(#32) div 2);
    Canvas.TextRect(Rect, Rect.Left, Rect.Top + TopDif, Items[Index]);
  end;
end;

function TFmLog.GetBackColor(const value:string):Tcolor;
begin
   result := clWhite;
   if Pos(FedSearch.Text, value) >= 0 then
      Result := $00FF7777;
end;
Ist er denn richtig und kann mir mal jemand erklären, was das alles bedeutet? Ich blicke da nicht durch.
  Mit Zitat antworten Zitat