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 ListBox (https://www.delphipraxis.net/33088-listbox.html)

valon 1. Nov 2004 16:05


ListBox
 
Hallo Leute!
Habe folgendes Problem.

Ich habe eine ObjektListe mit all den Dateien\unterverzeichnisse eines bestimmten verzeichnisses.
Jedes Objekt ist eine Datei. in diesem Objekt gibt es 2 Atrribute : Dateiname und isDirectory.
isDirectory ist ein boolean . Ich setze es auf true wenn es sich bei dem Objekt um ein Unterverzeichnis handelt.

Problem: Jetzt möchte ich die Dateinamen in einer ListBox auflisten.Allerdings möchte ich , das
wenn es sich um ein Unterverzeichnis handelt, es irgendwie deutlich gemacht wird. zb. ein Ordner als Icon.So das ich in der Listbox dann zwischen einer datei und einem Unterverzeinis unterscheiden kann.


Delphi-Quellcode:
FDirectory:String; // Das ist der Pfad von den Dateien

FFileList // Das ist die Objektliste mit den einzelnen Daeien und Unterverzeichnisse
FFileList.Items[i].Filename // Dateiname
FFileList.Items[i].isDirectory // ob es sich um Unterverzeichniss handelt.
Momentan mache ich es so
Delphi-Quellcode:
{*******************************************************************************
* Diese Procedure füllt die ListBox mit den in der FileObjectList vorhandenen
  Dateien
*******************************************************************************}
procedure TForm1.FillListBox;
var i:Integer;
 begin
   Self.ListBox1.Clear;
   Self.FSelectedFileList.clear;
   for i:=0 to FFileList.count-1 do
    if (FFileList.Items[i].isDirectory) then
      ListBox1.Items.Add(FFileList.Items[i].Filename+'\')
    else ListBox1.Items.Add(FFileList.Items[i].Filename);

   Self.ListBox1.Sorted:= True;
 end;
habt ihr vielleicht ne Idee?

jim_raynor 1. Nov 2004 16:08

Re: ListBox
 
Du kannst per ListBox1.Items.AddObject ein Eintrag mit einem Objekt verknüpfen. Wenn du jetzt die Einträge der Listbox per Hier im Forum suchenOwnerdraw selber zeichnest kannst du per ListBox1.Items.Objects[xxx] auf das Objekt zu greifen und die Eigenschften benutzen. (Typcast nicht vergessen, da Objects TObject zurückgibt)

rudi_ 1. Nov 2004 16:14

Re: ListBox
 
zu der Sache mit den Objekten hab ich gerade in einem anderen Thread schon etwas gepostet...hier der link:

http://www.delphipraxis.net/internal...=260075#260075

mfg rudi

valon 1. Nov 2004 16:15

Re: ListBox
 
Hi!

ehrlich gesagt weiss ich nicht was das mir bringen soll. Ich muss dazu sagen ich bin Anfänger in delphi, so das mir einiges kompliziert erscheint.

Was ich will ist nur , wie oben beschrieben in der ListBox unterscheiden ob es sich um eine Datei oder unterverzeichnis handelt.

hast du mir vielleicht Code-Schnipsel?

danke

valon 1. Nov 2004 19:52

Re: ListBox
 
keiner mehr ne Idee?

alcaeus 1. Nov 2004 19:59

Re: ListBox
 
Hi valon,

erstmal solltest du nicht vor 24 Stunden posten ;)

Ich will aber nicht so sein und helfe mal. In deinem Code unterscheidest du, was geschehen soll wenn es sich um einen Ordner handelt:
Delphi-Quellcode:
if (FFileList.Items[i].isDirectory) then
  ListBox1.Items.Add(FFileList.Items[i].Filename+'\')
else
  ListBox1.Items.Add(FFileList.Items[i].Filename);
Wenn du nun anstatt einer ListBox eine ListView verwendest, dann kannst du auch ein Icon einbinden. Dazu sollte die Forensuche eigentlich reichen, falls aber Probleme auftreten kannst du gerne nochmal fragen. Mit einer ListBox ist die Anzeige eines Icons aber nur mit Problemen verbunden

Greetz
alcaeus


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

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