![]() |
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 |
Re: kleiner Mediaplayer für eine Webcam
Hi, hiflt Dir das weiter ?
![]() z.B: ![]() |
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 |
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 ![]() |
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 |
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:
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
if (ComboBox1.text = 'Verzeichnis 1' then self.durchsuche('\Verzeichnis1\')
Delphi-Quellcode:
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!).
...
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; 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? |
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 |
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 |
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 |
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:
so bekommst du nun im CBDirectories.OnChange mit directories[(sender as TCombobox).ItemIndex] dein Verzeichnis
const
directories: array[0..2] of string ('C:\','D:\Webcam\','E:\woanders\'); 2. um die Dateien aufzulisten:
Delphi-Quellcode:
sonst noch was?
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; 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