Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi in Listbox ein Icon vor jeder Zeile (https://www.delphipraxis.net/59719-listbox-ein-icon-vor-jeder-zeile.html)

bluescreen25 27. Dez 2005 18:33


in Listbox ein Icon vor jeder Zeile
 
Hallo,

Ich lade je nach Vorauswahl des Users mp3-Dateien und wav-dateien in eine Listbox.

Kann man eigendlich jedem Dateityp entsprechend ein Icon der jeweiligen Listboxzeile hinzufügen?

Luckie 27. Dez 2005 18:34

Re: in Listbox ein Icon vor jeder Zeile
 
Items selber zeichnen und entsprechen ein Bitmap oder Icon in jedes Item zeichnen. Code dazu gibt es hier in der DP.

jbg 27. Dez 2005 18:35

Re: in Listbox ein Icon vor jeder Zeile
 
Zitat:

Zitat von bluescreen25
Kann man eigendlich jedem Dateityp entsprechend ein Icon der jeweiligen Listboxzeile hinzufügen?

Ja. :mrgreen:


Na ich will mal nicht so sein: CustomDraw heißt das Stichwort für TListBox und für das Icon ShGetFileInfo und ShGetImageList.

bluescreen25 27. Dez 2005 19:30

Re: in Listbox ein Icon vor jeder Zeile
 
Ja danke, habe dazu etwas gefunden.

Fürs erste habe ich mal eine Nummerierung vor die items gesetzt (zur Probe).

Wie kann man den FontFarbe für die Nummerung anders setzen als die FontFarbe für die Items ?

Delphi-Quellcode:
with Control as TListBox do
    begin
      canvas.FillRect(rect);
      //canvas.Font.Color := clYellow;
      canvas.textout(rect.Left+2,
                     rect.top+2,
                     inttostr(index+1)+'. '+items[index]);
    end;

jim_raynor 27. Dez 2005 19:32

Re: in Listbox ein Icon vor jeder Zeile
 
Canvas.Font.Color:=clRed;

bluescreen25 27. Dez 2005 19:35

Re: in Listbox ein Icon vor jeder Zeile
 
Zitat:

Zitat von jim_raynor
Canvas.Font.Color:=clRed;

Hmm, ja das habe ich mit yellow (siehe code) schon probiert. Ich weiss nicht ,an welcher Stelle man dies einsetzen muss, wenn z.Z. die Items weiss gezeichnet sind und ich nun die vorangestellte Nummerierung gelb haben möchte.

jim_raynor 27. Dez 2005 19:41

Re: in Listbox ein Icon vor jeder Zeile
 
Oh. Sorry hab ich erst jetzt gesehen. Du musst dann natürlich zweimal Textout machen.

Delphi-Quellcode:
canvas.Font.Color := clYellow;
canvas.textout(rect.Left+2,rect.top+2,inttostr(index+1)+'.');
canvas.Font.Color:=clWindowText;
Canvas.TextOut(Rect.Left+100,rect.Top+2,items[index]);

bluescreen25 27. Dez 2005 19:49

Re: in Listbox ein Icon vor jeder Zeile
 
Oh, danke, jetzt habe ich das Prinzip verstanden... :wink:

FriFra 27. Dez 2005 20:10

Re: in Listbox ein Icon vor jeder Zeile
 
Zwischenfrage: Warum verwendest Du eigentlich keine ListView? Damit wäre das alles kein Problem...

bluescreen25 27. Dez 2005 20:24

Re: in Listbox ein Icon vor jeder Zeile
 
Zitat:

Zitat von FriFra
Zwischenfrage: Warum verwendest Du eigentlich keine ListView? Damit wäre das alles kein Problem...

Nun ja, ich mache das mit Delphi erst seit 6 Wochen.
Mein kleines Projekt ist ein Mediaplayer fürs Auto.

Die Listbox ist meine Playliste für meinen MP3-Player...habe das am Anfang mal so ausgewählt und seitdem so übernommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz