Einzelnen Beitrag anzeigen

Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Smileys in einer Listbox?

  Alt 18. Nov 2005, 17:26
Hallo Delphi-Noobie,

du kannst der Liste sagen, dass du die Items selber zeichnen möchtest, indem du
    ListBox1.Style := lbOwnerDrawVariable; setzt.

Nun rufst du den OnDrawItem-Teil der Listbox auf und musst nun das Zeichnen der Items implementieren.
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
        Rect: TRect; State: TOwnerDrawState);
begin
  with ListBox1 do
  begin
    Canvas.FillRect(Rect);
// Hier müsste nun ermittelt werden, wo das Item sitzt und ein entsprechendes Bitmap eingesetzt werden
  
  end;
end;
Die Position des Icon-Zeichnens könntest du mit Pos herausfinden.
Da ich selbst noch am Anfang bin, kann ich dir leider nicht mal kurz was runterschreiben, das auch funktioniert. Sorry.
Ich würde auch vermuten, dass das ständige Aufsuchen und Ersetzen innerhalb des OnDrawItem-Ereignis entsprechend Zeit in Anspruch nimmt. Vielleicht gibt es ja auch eine bessere Lösung...

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat