![]() |
Mediaplayer Pfad verloren
Vielleicht klingt die Frage ein wenig zu einfach:
Ich habe auf einem PC ein Programm geschrieben, dass einen Sound aus dem Project-Ordner verwendet, und diesen mit dem Mediaplayer abspielt. Starte ich das Programm auf einem anderen PC, startet das Programm mit einer Fehlermeldung, weil die Sounddatei unter einem anderen Ordnerbaum liegt. Wie kann ich das ändern? Kann man Delphi sagen, dass die Sounddatei immer in dem Ordner des Programmes liegt? Vielen Dank schonmal für die Antworten! |
Re: Mediaplayer Pfad verloren
Klar, kann man machen :)
Mediaplayer.FileName:=ExtractFilePath(Application. Exename)+'Dateiname'; Das erste liefert den Pfad des Programmes und das 2. ist eben der Name der Sounddatei. |
Re: Mediaplayer Pfad verloren
Thx!
Aber kann man Delphi auch nach der Datei suchen lassen, wenn sie z.b. auf der Festplatte liegt? |
Re: Mediaplayer Pfad verloren
Na klar, wenn du weißt wie die Datei heißt.
Such doch mal unter folgenden Stichworten: TSearchRec; FindFirst, FindNext, FindClose |
Re: Mediaplayer Pfad verloren
So, hab grad einen Code gebastelt, der wohl so manchen weiterhelfen wird:
in FileName gibt man den Dateinamen der Datei an, nach der man suchen will (Bitte nur den Dateinamen, ohne Pfad!!!). in Path wird dann der Ordner angegeben, in dem die Suche gestartet werden soll (z.B. 'C:\' für die gesamte Festplatte). Die Funktion durchsucht zunächst im angegeben Ordner nach der Datei. Ist sie dort nicht vorhanden, werden alle Unterorder rekursiv nach der Datei durchsucht. Als Ergebnis liefert die Funktion den kompletten Pfad der Datei mit dem Dateinamen. Es wird immer die zuerst gefundene Datei zurückgegeben. Konnte die Datei nicht gefunden werden, wird '' zurückgegeben. Beispiel für einen Aufruf der Funtion: ShowMessage(Find('test.txt','C:\'));
Delphi-Quellcode:
function Find(FileName: String; Path: String): String;
var SR: TSearchRec; begin If FindFirst(Path+FileName, faAnyFile-faDirectory, SR)=0 then begin Result := Path+SR.Name; FindClose(SR); end else If FindFirst(Path+'*.*', faAnyFile, SR)=0 then begin Repeat If (SR.Name<>'.') and (SR.Name<>'..') then Result := Find(FileName, Path+SR.Name+'\'); Until (FindNext(SR)<>0) or (Result<>''); FindClose(SR); end else Result := ''; end; |
Re: Mediaplayer Pfad verloren
Herzlichen Dank!
Hab ihn ein wenig geändert, aber er funktoniert! Wirklich, Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 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