Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ordnername in listbox aufzählen (https://www.delphipraxis.net/15442-ordnername-listbox-aufzaehlen.html)

EvilDragon 28. Jan 2004 19:17


Ordnername in listbox aufzählen
 
hab lange gesucht aber nicht genau das gefunden.. nur wie man ordner erstellt oder dateien auflistet...

ich suche was was aus "dir" (aktueller pfad) die unterordner auflistet und deren namen in ListBox1 reinschreibt... nett wehre auch noch, wenn man dann einen namen anklickt das dier in Edit1.Text steht

danke schon mal für hilfe....

Luckie 28. Jan 2004 19:19

Re: Ordnername in listbox aufzählen
 
Findfirst findnextFindfirst findnext das auf deine Bedürnisse anzupassen, sollte kein Problem sein.

Alexander 28. Jan 2004 19:21

Re: Ordnername in listbox aufzählen
 
Hi,
schau dir mal das TSearchRec an, das ein Property namens "Attr". Nun kannst mit FindFirst und findNext alle Dateien in dem Verzeichnis, was du durchsuchen willst, durchgehen und prüfen, ob Attr = faDirectory ist.

zecke 28. Jan 2004 19:21

Re: Ordnername in listbox aufzählen
 
such mal über google bisschen rum mit listbox und ordner einlesen und sowas, bei meiner suche zum thema listbox box, habe ich dazu ein bsp gefunden, weiß zwar nicht mehr wo, aber ging recht schnell

mfg oH LoRd

Christian Seehase 28. Jan 2004 20:42

Re: Ordnername in listbox aufzählen
 
Moin Alexander,

eine Prüfung von
Delphi-Quellcode:
Attr = faDirectory
kann leicht daneben gehen, da die Eigenschaft Attr ein Bitfeld darstellt, in dem jedes Attribut in einem eigene Bit verschlüsselt ist. Z.B. würde ein verstecktes Verzeichnis (faHidden) nicht mehr als Verzeichnis erkannt werden.

Man muss das gewünschte Bit ausmaskieren

Delphi-Quellcode:
(Attr and faDirectory) = faDirectory
// oder
(Attr and faDirectory) <> 0
um es zu testen.

EvilDragon 28. Jan 2004 20:57

Re: Ordnername in listbox aufzählen
 
habs wie folgend gelößt:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var x,zahl : Integer;
begin
  dir := ExtractFilepath(ParamStr(0))+'mp3\eigene_mp3s'; //direkter Pfad vom Programm
  for x := 01 to 99 do begin
    zahl := x;
    verzeichnis[x] := dir+'\'+IntToStr(zahl);
    if DirectoryExists(verzeichnis[zahl]) then
      Edit1.Text := verzeichnis[zahl]
    else
      ForceDirectories(verzeichnis[zahl]);
      exit;
  end;
end;
ich glaub das macht das was ich denke *g*
also folgendes:

schaut ob ordner 01 ist wenn nicht dann erstellt er und schreibt das ergebnis ins edit
leider das mit listfeld bekomme ich net hin...

hat jemand vielleicht ein beispielcode??? (was ich mom hab reicht für meine bedürfnisse)

danke ;)

Alexander 29. Jan 2004 15:56

Re: Ordnername in listbox aufzählen
 
Zitat:

Zitat von Christian Seehase
Moin Alexander,

eine Prüfung von
Delphi-Quellcode:
Attr = faDirectory
kann leicht daneben gehen, da die Eigenschaft Attr ein Bitfeld darstellt, in dem jedes Attribut in einem eigene Bit verschlüsselt ist. Z.B. würde ein verstecktes Verzeichnis (faHidden) nicht mehr als Verzeichnis erkannt werden.

Man muss das gewünschte Bit ausmaskieren

Delphi-Quellcode:
(Attr and faDirectory) = faDirectory
// oder
(Attr and faDirectory) <> 0
um es zu testen.

Mhm. Das stimmt, das habe ich sogar schon "am eigenen Leibe" zu spüren bekommen :oops:. Ich finde aber leider meinen Weg, der dann schlißlich funktioniert hat, nicht mehr...

EvilDragon 3. Feb 2004 09:37

Re: Ordnername in listbox aufzählen
 
hat jemand vieleicht noch einen weg bzw. kann mir einen der genant in einem beispielcode zeigen *schäm*

halt listbox ein ließt auß dem pfad der in dir steht
listbox3 dann aus dir+listbox1
und listbox2 zeigt dann alle *.mp3 aus dir+listbox1+listbox3 an

meine momentane lösung läuft über inis die doch ein bissel probs beim weiteren vorgehen machen

danke schon mal

Bobator 3. Feb 2004 11:06

Re: Ordnername in listbox aufzählen
 
hi,

um Dateien zu finden verwende doch einfach die Komponente JvSearchFiles der JEDI-VCL . Die JEDI Komponenten sind alle recht gut.

poldi1977 3. Feb 2004 11:36

Re: Ordnername in listbox aufzählen
 
Zitat:

Zitat von Luckie
Findfirst findnextFindfirst findnext das auf deine Bedürnisse anzupassen, sollte kein Problem sein.

FindClose nicht zu vergessen! Sonst wird's nach einigen Tagen eng im Speicher ;o)

EvilDragon 3. Feb 2004 11:59

Re: Ordnername in listbox aufzählen
 
möcht ja nicht dateien auflisten (weiß wie das schon geht) eher ordner bzw. die ordnernamen und dann halt:

klickt man in der listbox1 auf den ordner öffnet sich der inhalt bzw. dessen ordner (namen) in der listbox3
und wenn man nun in der listbox3 auf einen ordner klickt dann dessen inhalt (*.mp3) in der listbox2

aber trotzdem danke

hboy 3. Feb 2004 16:02

Re: Ordnername in listbox aufzählen
 
gug ma ich hab sowas ähnliches gemacht

hier

EvilDragon 3. Feb 2004 16:29

Re: Ordnername in listbox aufzählen
 
thx allerdingst ist es keine wirkliche antwort auf meine frage... ich würde gern ordner in einer Listbox auflisten... und wenn man dann auf einein eintrag klickt soll in einer zweiten listbox die unterordner aufgelistet werden und wenn man nun einen ordner (unterordner) klickt in einer dritten listbox dann der inhatl halt die mp3s...

sorry....

hboy 3. Feb 2004 17:20

Re: Ordnername in listbox aufzählen
 
Liste der Anhänge anzeigen (Anzahl: 1)
wo is dein problem ? is doch ganz einfach...

mit

Delphi-Quellcode:
for i:=0 to listbox1.items.count-1 do
  if listbox1.Checked[i]
  then deine_subfolderproc(listbox1.items.strings[i]);
die unterordner auflisten. wichtig: arbeitsverzeichnis in ner extra variable fürhen und jeweils das neue Verzeichnis anhängen


PS: gug ma den anhang

xineohp 3. Feb 2004 17:51

Re: Ordnername in listbox aufzählen
 
moin moin,

also irgendwie klingen deine Beschreibungen für mich so, als wolltest du eine Art Explorerfenster in dein Projekt integrieren?! Falls das der Fall ist würde ich dir raten einen Blick auf den Beispiel-Komponenten-Reiter von D7 zu werfen ... dort gibt es eine Komponente namens "ShellTreeView". Ich hab mich zwar noch nie damit beschäftigt aber wenn ich dich richtig verstanden habe scheint das genau deinen Bedürfnissen zu entsprechen.

cu phoenix

EvilDragon 3. Feb 2004 19:48

Re: Ordnername in listbox aufzählen
 
@hboy

danke das hat mir teils weitergeholfen... das einzige prob ist wenn ich hier:

Delphi-Quellcode:
      for i:=0 to listbox2.Items.Count+1 do begin
      if listbox2.Selected[i] = true then begin
       dir := dir+listbox2.Items.Strings[i];
       Edit2.Text := dir;
       MediaPlayer1.FileName := Edit2.Text;
       break;
      end;
      end;
einen eintrag anklicke spielt er ihn auch ab, aber wenn ich noch mal drauf klicke auf einen anderen eintrag hängt er an z.b. 'ordner/unterordner/01.mp3'noch dies an '02.mp3' aber warum weiß ich, da ja das 'dir' (var für verzeichnis) ja geändert wurde... mal schauen ob ich dat hinbekomme

EvilDragon 3. Feb 2004 22:11

Re: Ordnername in listbox aufzählen
 
es klappt nun einwandfrei nach deine methode @hboy thx...

nur ein prob hab ich nun hier mal der code:

Delphi-Quellcode:
if RadioButton1.Checked then begin
    if (ListBox1.ItemIndex > -1) and  // Prüft, ob überhapt etwas in den
       (ListBox3.ItemIndex > -1) then // Listeboxen ausgewählt ist
      for i:=0 to listbox2.Items.Count+1 do begin
      if listbox2.Selected[i] = true then begin
       dat := pfad+listbox2.Items.Strings[i];
       MediaPlayer1.FileName := dat;
       break;
      end;
      end;
  end;
wenn mehr code benötigt wird einfach sagen.....

nun werden mp3s in diese listbox eingelesen, wie muss der code eines button lauten der beim klick dann den nächsten eintrag makiert... und das selber vür einen der den voriegen eintrag makiert

PS halt wie bei einem mp3player dann....


-----Edit:---------------------------------

Folgendes würde mir schon reichen (überListbox):
- Abfrage was angeklickt ist
- automatisch das nächste anwählen bzw. wie man das macht
- wenn das prog selber das den nächsten eintrag auswählt das dieser auch makiert ist

---Edit 2-------------------------------------

hat sich erledigt *g* hab nach 30 min rumprobieren nen code hinbekommen der das tut was er soll naja und hilfe stück für stück studiert ;) hier der code *g*

Delphi-Quellcode:
procedure TForm1.zurueckClick(Sender: TObject);
var i : Integer;
    mp3pfile : String;
begin
    if Mediaplayer1.Mode = mpOpen then Mediaplayer1.close;
  ListBox2.ItemIndex := ListBox2.ItemIndex+1;
  Edit2.Text := pfad+Listbox2.Items[ListBox2.ItemIndex];
  Mediaplayer1.FileName := Edit2.Text;
  mp3File := Concat(MediaPlayer1.FileName);
  if not FileExists(mp3File) then begin
    ShowMessage('MP3 file '+#13#10+' '+ mp3File +' '+#13#10+'does not exist!');
    exit;
  end;
  GetID3TagInformation(mp3File, edTitle, edArtist, edAlbum, edYear, edGenre, edComment);
  MediaPlayer1.Open;
  MediaPlayer1.Play;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17: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