Announcement

Collapse
No announcement yet.

OwnerDraw für Listenelemente

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OwnerDraw für Listenelemente

    Mahlzeit

    Eine Frage: Mit der Eigenschaft OwnerDraw muß man das Zeichnen von ListItems selbst machen. Soweit klar. Ich hab jetzt die Erfahrung gemacht, das ich nur den Hintergrund der Listbox zeichne. Wenn ich scrolle bleiben die Elemente stehen bzw. werden durch "nichts" übermalt.

    Wo ist mein Fehler?

    Gruß
    Leo

  • #2
    in der routine für onDrawItem :
    <BR>
    <PRE>
    with (Control as TListBox).Canvas do
    begin
    ..
    Brush.Color:=clRed;
    FillRect(Rect); // Hintergrundfarbe
    Font.Color:=clmaroon;
    TextOut(Rect.Left + 35 , Rect.Top, ..text..) ;
    ..
    end;
    </PRE>
    <BR>

    so geht's zumindest bei delphi 5 und 6
    (falls ich Dein Problem richtig verstanden hab !?

    Comment


    • #3
      Jo, so hab ichs auch gemacht. Er zeichnet die ELemente schön wie ich sie will.

      Aber sobald ich scrolle verschiebt sich alles :

      Comment


      • #4
        <PRE>
        da bin ich baff..
        Im Moment fällt mir nur noch der style der Listbox ein :
        lbOwnerDrawFixed

        Mit lbOwnerDrawVariable gibt's eventuell Probleme mit der Itemhöhe
        Falls das nicht hilft :
        Debugge mal die routine von onDrawItem beim scrollen.

        Sorry, aber damit ist mein Delphi-Latein auch am Ende :-(
        </PRE&gt

        Comment


        • #5
          Hm, wäre es möglich, das eine Systemdatei von Windows daran schuld ist? Es gibt nämlich auch Probleme mit dem Zeichnen von Icons auf dem Desktop und im ganzen Windows...

          Werds mal daheim testen, da treten diese Probleme mit der Darstellung nicht auf :

          Comment

          Working...
          X