Einzelnen Beitrag anzeigen

Chrissi91

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

Re: Zeilen in einer Listbox färben

  Alt 14. Apr 2006, 09:42
Hi,

danke Sharky, jetzt ist mir doch so einiges klarer geworden.

Allerdings bin ich mir noch nicht ganz im Klaren über folgenden Code:

1. newItemPos Kommt in fast jeder Procedure vor, aber wozu brauche ich das, wenn ich es immer nur ans Ende der Listbox anhängen muss?

2.
Delphi-Quellcode:
procedure TDemoForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  TopDif: Integer; // Gleicht die Höhendifferenz aus <== Welche Höhendifferenz
begin
  with (Control as TListbox) do
  begin
    if (Index = newItemPos) then // Nur wenn das zuletzt eingefügte Item gezeichnet wird <== Verstehe ich nicht :gruebel:
    begin
      Canvas.Brush.Color := clRed; // Hintergrundfarbe
      Canvas.Font.Color := clBlack; //Schriftfarbe
    end;
    TopDif := (ItemHeight div 2) - (Canvas.TextHeight(#32) div 2);
    // Damit es in der Mitte der Zeile steht. <== Also zentriere ich damit den Eintrag in der Zeile, ist aber nicht notwenig, oder?
    Canvas.TextRect(Rect, Rect.Left, Rect.Top + TopDif, Items[Index]);
    // Und hier wird der Text gezeichnet <== nun gut, text kann man auch zeichnen. ^^
  end;
end;
Hinter einige Kommentare habe ich nochmal Unklarheiten aufgezählt. z.T. habe ich auch meine Schlussfolgerungen daneben geschrieben. Vielleicht ist ein Teil von mir ja richtig wiedergegeben worden.

Ansonsten danke nochmal.
  Mit Zitat antworten Zitat