Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi kleiner Mediaplayer für eine Webcam (https://www.delphipraxis.net/48180-kleiner-mediaplayer-fuer-eine-webcam.html)

black_hawk 21. Jun 2005 19:56


kleiner Mediaplayer für eine Webcam
 
Moin, ich bin noch Delphi-Neuling und komme jetzt nicht mehr weiter. Habe mir schon ein bischen was aus der DP angelesen und ich hoffe das ihr mir jetzt bei meiner Frage bzw. Fragen helfen könnt.

Was habe ich vor?: Ich will mir einen kleinen Mediaplayer basteln der über ComboBoxen auf verschiedene Verzeichnisse zugreifen kann und mir dann die Dateien (avi) in einer Listbox anzeigt. Als nächstes ist dann geplant das ich über 2 DateTimePicker nur die Dateien für den ausgewählten Zeitraum anzeigen lasse. Aber dafür mache ich dann evtl. einen neuen Thread auf.

Der Mediaplayer und die Listbox funktionieren schon. Allerdings gebe ich im Moment noch ein festes Verzeichnis an. Das will ich aber eigentlich über die ComboBoxen auswählen. Das bekomme ich aber irgendwie nicht hin. :wall:
Das Verzeichnis bzw. die Dateien lade ich im Moment über einen Butten in die Listbox.

Meine Frage nun, wie bekomme ich es hin das ich das feste Verzeichnis nicht mehr brauche und ich die Verzeichnisse über die ComboBoxen in die ListBox laden und anzeigen kann?


Ich hoffe das dass relativ verständlich geschrieben ist...

Bin für jeden Tipp dankbar!


mfg black_hawk

turboPASCAL 21. Jun 2005 20:46

Re: kleiner Mediaplayer für eine Webcam
 
Hi, hiflt Dir das weiter ? Hier im Forum suchenfindnext AND listbox

z.B:

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

black_hawk 21. Jun 2005 21:51

Re: kleiner Mediaplayer für eine Webcam
 
Moin, das hilft mir leider nicht wirklich weiter. Die Dateisuche an sich habe ich ja schon. Ich habe die Suchfunktion auch schon bemüht, aber nichts zu meinem Problem gefunden.
Ich will ja mit den ComboBoxen die Ordner auswählen und mir den Inhalt der Ordner in der ListBox anzeigen lassen.


mfg black_hawk

Matze 21. Jun 2005 23:24

Re: kleiner Mediaplayer für eine Webcam
 
Hallo!

Dann musst du den Comboboxen ja irgendwie Pfade zuweisen, ich verstehe nicht genau, was du meinst.

Sollen die Laufwerksbuchstaben ausgewählt werden können, hilft dir das hier.

black_hawk 22. Jun 2005 00:24

Re: kleiner Mediaplayer für eine Webcam
 
Hallo, also ich will in den ComboBoxen als Namen z.B.

Verzeichnis 1
Verzeichnis 2
Verzeichnis 3 etc. zu stehen haben.

Wenn ich dann z.B. auf Verzeichnis 1 klicke soll der Inhalt des Verzeichnisses in einer ListBox angezeigt werden.
Mir geht es nun darum, wie kann ich dem jeweiligen Eintrag in der ComboBox einen String zuweisen der den Pfad enthält und mir dann den Inhalt des Verzeichnisses in der ListBox anzeigt?

Die Rekusrive Dateisuche habe ich schon und der Mediaplayer funzt auch, allerdings mit einem festen Pfad. Das würde ich aber gerne ändern und über die ComboBoxen auswählen.

mfg black_hawk

Unwissender 22. Jun 2005 07:22

Re: kleiner Mediaplayer für eine Webcam
 
Hi,

du sagst ja, dass du schon eine fertige Methode zum Durchsuchen hast? Ich nenn die im Folgenden einfach mal durchsuchen und geh davon aus, dass der einzigste Parameter der Verzeichnis-String (bzw Pfad-String) ist.

Dann würde ich mal sagen, möchtest du immer dann etwas neues tun, wenn jmd. den Eintrag in der ComboBox ändert, also kommt der folgende Code in die OnChange-Methode der jeweiligen Combobox.

Es gibt mehrere Möglichkeiten, so könntest du einfach stupide Vergleiche machen
Delphi-Quellcode:
 if (ComboBox1.text = 'Verzeichnis 1' then self.durchsuche('\Verzeichnis1\')
Du könntest auch ein Array benutzen, dass genau so groß ist wie die Anzahl deiner Verzeichnisse und dann könntest du so was machen wie
Delphi-Quellcode:
...
verzeichnisse : Array[0..AnzahlVerzeichnisse - 1] of String;
...
if (self.ComboBox1.ItemIndex >=0) AND (self.ComboBox1.ItemIndex < length(AnzahlVerzeichnisse) then
 begin
   self.durchsuche(verzeichnisse[self.ComboBox1.ItemIndex]);
 end;
Oder gar ein TStrings-Objekt, mit einer Wrapper-Klasse für den Pfad, also eine Klasse die einfach nur ein String enthält. Die kann man in ein TStrings-Objekt mit addObject(Bezeichner, Wrapper) packen und dann im OnChange einfach den dieses Objekt als Pfad benutzen (also nicht direkt das Objekt, sondern den String darin. Type-Cast nicht vergessen!).
Ich weiß auch nicht genau wie du das mit den festen Pfaden meinst, aber stehen die zur Design-Zeit fest? Oder wann werden die wie festgelegt?

black_hawk 22. Jun 2005 12:01

Re: kleiner Mediaplayer für eine Webcam
 
@ Unwissender
Danke, das könnte mir schon helfen. Werde es mal ausprobieren.

Mit "festen" Pfaden meine ich - das wenn ich z.B. auf "Verzeichnis 1" in der ComboBox klicke, soll mir z.B. das Verzeichnis "D:\Logitech" in der ListBox angezeigt wird.
Wenn ich auf "Verzeichnis 2" klicke soll z.B. das Verzeichnis "E:\Kamera\Logitech" in der ListBox angezeigt werden. Es soll also hinter jedem Eintrag der ComboBox ein anderes Verzeichnis sein.
Das meine ich mit festen Pfaden.

Muss ich da für jeden Eintrag die Rek. Suche durchführen, oder reicht es wenn ich jeweils nur den angeklickten Eintrag der ComboBox abfrage???

Die Endverzeichnisse stehen noch nicht fest. Aber wenn ich erst mal weiss wie man es macht, dürfte eine spätere Änderung ja kein Problem sein?!

Ich hoffe das jetzt einigermaßen klar ist was ich meine?! :?:

mfg black_hawk

Unwissender 22. Jun 2005 12:15

Re: kleiner Mediaplayer für eine Webcam
 
Ok bleibt halt noch die Frage, wann werden denn diese Zuordnungen festgelegt?

Also wer legt fest, das Verzeichnis 1 "C:\Bla" und Verzeichnis 2 "D:\BLubb" entspricht? Wird das geladen oder ist das immer fest?

Gruß Andreas

black_hawk 22. Jun 2005 12:17

Re: kleiner Mediaplayer für eine Webcam
 
Hallo,
also, die Zuodnungen der Verzeichnisse lege ich erst mal fest. Sie werden später nur nochmal angepasst.
Die Verzeichnisse sind immer fest. Es können vielleicht noch ein oder zwei dazu kommen, aber ansonsten ändert sich nichts. Die Verzeichnisse sind also nicht variabel.

mfg black_hawk

DGL-luke 22. Jun 2005 22:02

Re: kleiner Mediaplayer für eine Webcam
 
ich repetiere noch einmal dein problem:

du hast eine Combobox und eine ListBox. wird in der Combobox ein verzeichnis ausgewählt, so willst du den inhalt desselben in der Listbox anzeigen lassen.

1. wenn in der combobox keine pfadangaben sondern nur beliebiege angaben stehen:

Delphi-Quellcode:
const
 directories: array[0..2] of string
 ('C:\','D:\Webcam\','E:\woanders\');
so bekommst du nun im CBDirectories.OnChange mit directories[(sender as TCombobox).ItemIndex] dein Verzeichnis

2. um die Dateien aufzulisten:

Delphi-Quellcode:
function getSubDirs(path:string):TStrings;
var srec:TSearchrec;
begin
result:=TStirngList.create;

findfirst(path+'*.*',faDirectory,srec); //liefert'.';
findnext(srec); // liefert '.'

while findnext(srec) do
 if (srec.Attr and faDirectory) <> 0 then
  result.add(srec.Name);
findclose(srec);
end;
sonst noch was?
wenn du "abtauchen" willst, musst du rekursiv vorgehen, sprich für jedes gefundene verzeichnis noch einmal getSubDirs aufrufen, und die stringlist an die vorhandene anhängen.


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