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.