Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Dateiendung mit dem eigenen Programm verknüpfen (https://www.delphipraxis.net/180828-dateiendung-mit-dem-eigenen-programm-verknuepfen.html)

superjojo 20. Jun 2014 15:01

Dateiendung mit dem eigenen Programm verknüpfen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Ich versuche mir einen eigenen Mediaplayer zu programmieren mit Delphi.
Nun möchte ich, dass wenn man eine Datei (Bsp .mp3) öffnet, dass diese automatisch mit meinem selbstgeschriebenen Programm geöffnet wird.

Habe schon mal gegoogelt und das hier gefunden
http://www.delphi-treff.de/tipps-tri...m-verknuepfen/

Habe auch den dort empfohlenen Code angewendet
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
if (ParamCount>0) and
    (FileExists(ParamStr(1))) then
   Memo1.Lines.LoadFromFile(ParamStr(1));
end;
Es kommt jedoch, wenn ich eine Datei mit meinem Programm öffne, eine Fehlermeldung (Siehe Bild im Anhang).

Habe auch gelesen, dass man irgendwie an die Verknüpfung mit dem Programm ein %1 anhängen müsste (Bsp C:\Project1.exe %1) aber wo muss ich das hinschreiben?

Puke 20. Jun 2014 15:20

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Macht doch die Funktion in deinem aufgeführten Link automatisch ... Statt der %1 setzt Windows die zu öffnende Datei ein

DeddyH 20. Jun 2014 15:25

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Man muss schon genau lesen:
Zitat:

“ParamStr”
Enthält mögliche Parameter und deren Schreibweise. (z.B. “%1″ um auch Pfadangaben mit Leerzeichen zu übergeben)

himitsu 20. Jun 2014 15:29

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Bist du dir sicher, daß die Fehlermeldung mit dem hier erwähnten Thema zu tun hat?

Macht dein Programm noch etwas anderes, nach dem Programmstart?
z.B. versucht es gleich sofort diese Datei zu öffnen und abzuspielen?

superjojo 20. Jun 2014 17:57

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
1. Vielen Dank für die schnellen Antworten

2. @Puke Habe ich schon versucht, doch die dort angegebene Funktion wirft bei mir massenhaft Fehler auf. Da ich von dem was da in der Funktion steht so ziemlich gar nichts verstehe habe ich auch keine Ahnung wie ich die Fehler beheben soll.

3. @himitsu Also Im OnCreate event passiert nichts außer
Delphi-Quellcode:
if (ParamCount>0) and
    (FileExists(ParamStr(1))) then
   Memo1.Lines.LoadFromFile(ParamStr(1));
Auch sonst besteht mein Programm aus nur sehr wenigen Befehlen, die alle fehlerfrei abliefen bevor ich das OnCreate Event mit obigem Quellcode erzeugt habe. Jedoch habe ich bei dem TMediaPlayer der die Datei schließlich abspielen soll AutoOpen aktiviert.

Christian Seehase 20. Jun 2014 18:48

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Moin,

zum Thema "Dateiendung registrieren" haben wir zwei Einträge in der Codelib.

Das der Quelltext den Du da gepostet hast nichts mit dem Laden einer Mediendatei, wie z.B., MP3 zu tun hat ist Dir schon klar?
Ein MP3 lässt sich nicht in einem Memo öffnen, sondern die Datei muss der Eigenschaft FileName des Mediaplayers zugwiesen werden.

Garfield 20. Jun 2014 22:13

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Warum wird die Datei in das Memo geladen? Soll die nicht abgespielt werden?

himitsu 20. Jun 2014 23:34

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Vielleicht meinte man eigentlich ein Add statt dem LoadFromFile? :stupid:

DeddyH 21. Jun 2014 05:37

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Es steht so im Beispielcode, that' s all.

superjojo 21. Jun 2014 09:34

AW: Dateiendung mit dem eigenen Programm verknüpfen
 
Ich habe den Fehler gefunden.
himitsu hatte absolut recht statt dem .loadfromFile muss ein .add dahin und schon funktioniert es.

Es muss also so heißen

Delphi-Quellcode:
if (ParamCount>0) and
    (FileExists(ParamStr(1))) then
   Memo1.Lines.Add(ParamStr(1));
Alternativ könnte man den Dateifad natürlich auch direkt dem Mediaplayer übergeben.

Vielen dank für die Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz