Announcement

Collapse
No announcement yet.

Probleme mit TListView und Canvas

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

  • Probleme mit TListView und Canvas

    Hallo,

    ich will mit Hilfe des Ereignisses OnAdvancedCustomDrawItem einen farbigen Rahmen um ein markiertes Item zeichnen. Das funktioniert auch soweit ganz gut. Aber wenn ich mit den Pfeiltasten das Item wechsel, dann erscheint das Item darunter Fett. wechsel ich wieder zurück, dann ist es wieder normal.

    Der Code meines Ereignisses:

    <pre>
    procedure TFormMP3Player.ListViewPlaylistAdvancedCustomDrawI tem(
    Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
    Stage: TCustomDrawStage; var DefaultDraw: Boolean);
    var t_rect : TRect;
    t_color : TColor;
    t_old, t_new : TBrush;
    begin
    DefaultDraw:=true;
    inherited;
    if (Item.Selected) then
    begin
    t_rect:=Item.DisplayRect(drLabel);
    t_rect.BottomRight.Y:=t_rect.BottomRight.Y-1;
    t_old:=Sender.Canvas.Brush;
    t_new:=TBrush.Create;
    t_new.Color:=clBlue;
    Sender.Canvas.Brush:=t_new;
    Sender.Canvas.FrameRect(t_rect);
    Sender.Canvas.Brush:=t_old;
    FreeAndNil(t_new);
    end;
    end;

    </pre>

    Wie man deutlich sehen kann, habe ich schon alles versucht (Instanz der Klasse TBrush erzeugen, die alte merken und am Schluß wieder zuweisen)


    Vielen Dank schon einmal für eure Unterstützung.

    Michael Lamers
Working...
X