Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inhalt der Listenbox in einer Schleife fassen??? (https://www.delphipraxis.net/15218-inhalt-der-listenbox-einer-schleife-fassen.html)

EvilDragon 24. Jan 2004 11:09


Inhalt der Listenbox in einer Schleife fassen???
 
Hi leutz ich arbeite grad an einer art musikbox mit meiner mp3sammlung....

ich nutze da für mehrer listboxen ect z.b.

Listbox 1: inhalt des mp3ordner (namen des interpreten)
listbox 3: inhalt vom ordner des interpreten (halt seine alben)
listbox 2: gibt den inhalt de ralben wieder (man klickt auf ein file und es wird abgespielt)

momentan hab ich über 5000 programmzeilen fast nur in der listbox2 vielleicht weiß jemand wie ich den inhalt dieser procedur in eine schleife fassen kann...

hab mal eben nur die procedur und dann noch das konplette projeckt mit kleinen einschrenkungen angehängt.

(Aktuells FILE WEITER UNTEN)

MikeS 24. Jan 2004 13:17

Re: Inhalt der Listenbox in einer Schleife fassen???
 
hallo zusammen

habe mir mal dein programm angeschaut!

Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
var i: integer;
begin
        i := listbox1.ItemIndex;
        edit1.Text := listbox1.Items.Strings[i];
end;
sobald du auf eine reihe in deiner listbox klickst wird dir in meinem beispiel
das was in dieser zeile steht in einem edit-feld angezeigt!

meinst du nicht das du dies dann so umsetzen kannst
und nicht mehr auf deine if abfragen, in diesem umfang, angewiesen bist!

Ich denke das der vorteil ist, das du direkt weißt was ausgewählt wurde!

scp 24. Jan 2004 14:23

Re: Inhalt der Listenbox in einer Schleife fassen???
 
Genauso kannst du tack1 bis track25 in folgendes zusammenfassen:
Delphi-Quellcode:
var
  track : array[1..25] Of String;
  x : integer;
Aufgerufen wird das dann mit:
Delphi-Quellcode:
track[1] := 'mp3/cds_und_alben/01/01/01.mp3';
track[2] := 'mp3/cds_und_alben/01/01/02.mp3';
// usw.
oder besser eben:
Delphi-Quellcode:
for x := 1 to 25 do
  track[x] := 'mp3/cds_und_alben/' + '01' + '/' + '01' + '/' + Format('%0:2.2d', [x]) + '.mp3';
Ps: Die 01/01/ kannst du ebenfalls auf diese Weise über listbox1.ItemIndex+1 bzw. listbox3.ItemIndex+1 automatisch einfügen.

EvilDragon 24. Jan 2004 15:38

Re: Inhalt der Listenbox in einer Schleife fassen???
 
thx.. werd das ganze mal genauer betrachten bin halt noch nen kleiner anfänger....

Luckie 24. Jan 2004 15:48

Re: Inhalt der Listenbox in einer Schleife fassen???
 
Ich würde Pfade nie nicht relativ angeben, sondern immer absolut. Es brauch sich nur mal das aktuelle Verzeichnis ändern und das war es dann gewesen.

Btw. Hab eich jetzt keine Lust 8202 Zeilen durch zu kucken. Hinzukommt, dass ich nochnicht mal verstehe, wie das ganze überhaupt funktionieren soll. Versuch das mal in zusammengöhrige Units aufzuteilen. Das Abspielen würde ich zum Beispiel auslagern und so programmieren, dass es vom Formular unabhängig ist.

MikeS 24. Jan 2004 16:09

Re: Inhalt der Listenbox in einer Schleife fassen???
 
Zitat:

Zitat von Luckie
Ich würde Pfade nie nicht relativ angeben, sondern immer absolut. Es brauch sich nur mal das aktuelle Verzeichnis ändern und das war es dann gewesen.

verstehe ich nicht!
wenn ich die pfade die zu meinem programm gehören relativ dazu angebe dann habe ich doch den vorteil das ich das programm und die ordner hinpacken kann wo ich möchte und die pfade trotzdem stimmen!

:gruebel:

Luckie 24. Jan 2004 16:20

Re: Inhalt der Listenbox in einer Schleife fassen???
 
Stimmen schon, aber ändere mal bei einer Verknüpfung das Arbeitsverzeichnis oder benutze im Programm einen OpenDialog. Relative Pfade sind immer realtiv zum aktiellen Verzeichnis. Wird das im Laufe der Anwendung anders gestzt, war es das gewesen.

Besser:
Delphi-Quellcode:
dir := ExtractFilepath(ParamStr(0))+'\'+'mp3';
Dann kannst du deine Anwendung auch hinpacken wohin du willst und der Pfad ist absolut.

EvilDragon 24. Jan 2004 16:45

Re: Inhalt der Listenbox in einer Schleife fassen???
 
das ganze sll später halt auf eine CD mit den daten, da kann man den pfad dann eh nicht mehr ändern (eigentlich)

das ganze findet sich noch in aufbau, das momentan alles über ein Form geht liegt da ran, das ich erst mal möchte das alles so läuft dann nach kann man alles noch design und verfeinern ;)

Luckie 24. Jan 2004 16:58

Re: Inhalt der Listenbox in einer Schleife fassen???
 
Das ist egal. Das aktuelle Verzeichnis hat nichts mit dem Verzeichnis auf dem Datenträger zu tun. das aktuelle Verzeichnis "merkt" sich Windows intern für dein Programm. Öffne mal mit Notpad eine Datei, die nicht im angezeigten Verzeichnis liegt. Dann mache das noch mal und du wirst festellen, dass dir das zu letzt geöffnete Verzeicnis angezeigt wird, das aktuelle eben. Wird jetzt aus irgendeinem Grund das aktuelle Verzeichnis deiner anwendung geändert, stimmen die relativen Pfade in deiner Anwendung nicht mehr, da sie relativ zum aktuellen Verzeichnis sind.

scp 24. Jan 2004 17:13

Re: Inhalt der Listenbox in einer Schleife fassen???
 
Übrigens:
Falls du vor hast deine MP3-Datenbank zu erweiteren oder mehrere CDs zu erstellen, dann würde ich dir eine andere vorgehensweise empfehlen.
Anstatt feste Ordner anhand von Zahlen zu generieren, kannst du Delphi auch dazu bringen, den Ordner "mp3" nach tatsächlich vorhandenen Ordnern zu durchsuchen.
Das geht z.B. mit FindFirst() und FindNext(), dazu findest du in der Online-Hilfe und in der DP über die Suche Informationen: Hier im Forum suchenFindFirst


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.
Seite 1 von 2  1 2      

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