Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei auf Programm Icon ziehen -> Datei übergeben (https://www.delphipraxis.net/54499-datei-auf-programm-icon-ziehen-datei-uebergeben.html)

kurtm1 5. Okt 2005 14:15


Datei auf Programm Icon ziehen -> Datei übergeben
 
Hallo!

Ich brauche Hilfe:
Habe einen MP3 Player, und möchte dass dieser eine Datei abspielt wenn man ein file auf die Verknüpfung zieht. Wie bekomm ich die Daten (Pfad) der Datei?

(Hoffe es war halbwegs verständlich)

thx

Ultimator 5. Okt 2005 14:17

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Der Dateipfad wird dann als Parameter übergeben und du findest ihn in Paramstr(1) ;)

kurtm1 5. Okt 2005 14:18

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
aha ok.

Mal schauen ob das so hinhaut, wenn ich will dass das Programm gestartet wird, und dann die Datei abspielt.

auf jeden Fall thx


//EDIT: funzt super
und mit ParamCount bekommt man die Anzahl der übergebenen Dateien

kurtm1 19. Okt 2005 21:18

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
ok das hätte ich mal: weitere Frage:

Jetzt möchte ich das Ganze noch zur Laufzeit haben, welches Ereignis der Form muss ich da wählen?

Rastaman 19. Okt 2005 21:21

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Ich würd ma auf WM_DROPFILES tippen, bin mir aber nich ganz sicher.

xaromz 19. Okt 2005 21:25

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Hallo,
Zitat:

Zitat von kurtm1
Jetzt möchte ich das Ganze noch zur Laufzeit haben, welches Ereignis der Form muss ich da wählen?

Meinst Du auf Icon ziehen, während das Programm läuft? Das funktioniert nicht, weil Windows dann Dein Programm einfach nochmal startet. Du musst also Dein Programm so einrichten, dass es a) beim zweiten Start das erste Programm über die Parameter informiert und sich b) danach wieder beendet. Wie Du erkennst, ob ein Programm schon mal gestartet wurde findest Du sicher über die Suche, z. B. hier.

Die Parameter übergibst Du am Besten mit 'ner User-Message an das laufende Programm.

Gruß
xaromz
//Edit: reichtshribunng...

kurtm1 19. Okt 2005 21:26

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
k thx

mh166 20. Okt 2005 14:23

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Wenn du sie zur Laufzeit auf das *Fenster* deiner App, nich auf den *Link* dazu, ziehen möchtest, dann musst du den Weg von Rastaman gehen. Nämlich über MSDN-Library durchsuchenWM_DROPFILES. Wenn ich mich nich täusche, dann is aber auch ne entsprechende Kompo bei den Jedis dabei, die sowas übernimmt.. glaub ich jedefalls.

so far...
mfg, mh166

Ultimator 20. Okt 2005 14:26

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Hmm, wieso braucht man eigentlich für jede Kleinigkeit ne Komponente?
Hier in der DP-Suche nach Hier im Forum suchenWM_DROPFILES findet man massenhaft fertigen Code, das kann ja nicht so schwer sein, den in den eigenen Code zu übernehmen ;)

DymonD 29. Okt 2005 23:24

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Zitat:

Zitat von Ultimator
Der Dateipfad wird dann als Parameter übergeben und du findest ihn in Paramstr(1) ;)

Hey Julian,
Sehr schön, der Beitrag. :lol:
Nun weiß ich aber immer noch nicht was genau übergeben wird. :wall:
Wärst du so nett und würdest das auch posten, bitte? Danke! :???:

P.S.: Diesmal hab ich gesucht - wollte shcon nen neuen Topic aufmachen.

Ultimator 29. Okt 2005 23:39

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Hi Dimitri, lang nix gehört^^
Also, wenn der User eine Datei per Drag&Drop auf deine EXE zieht, wird dein Programm geöffnet, und der Pfad zur Datei, die du draufgezogen hast als Parameter mitgegeben.
Und dieser Pfad (inkl. Dateiname natürlich ;)) steht dann in ParamStr(1) :)
So kannst du das auslesen:
Delphi-Quellcode:
var i: byte; //vermutlich zieht neimand mehr als 255 Dateien auf deine EXE. Wenn doch -> Cardinal oder sowas ;)
begin
 if ParamCount > 0 then //ParamCount beinhaltet die Anzahl der übergebenen Parameter
  for i := 0 to ParamCount -1 do
   Memo1.Lines.Add('Parameter Nr. ' + IntToStr(i) + ': ' + ParamStr(i);
end;
Wir gehen also alle übergebenen Parameter durch und tragen sie in ein Memo ein ;)
In ParamStr(0) steht übrigens immer Pfad+Dateiname deiner eigenen Anwendung drin. Ist gut zu wissen, wenn du mit relativen Pfadangaben arbeitest :)

Wenn noch Fragen sind, meld dich einfach ;)

DymonD 29. Okt 2005 23:44

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Achso das heißt ich könnte track1.mp3 dann track2.mp3 und track3.mp3 zusammen auf die EXE ziehen und die wären dann Paramstr(1), Paramstr(2), Paramstr(3)?
Okay, hab gar nicht gedacht, dass es so einfach geht ^^

THX!!

Ultimator 29. Okt 2005 23:45

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Zitat:

Zitat von DymonD
Achso das heißt ich könnte track1.mp3 dann track2.mp3 und track3.mp3 zusammen auf die EXE ziehen und die wären dann Paramstr(1), Paramstr(2), Paramstr(3)?

Genau so schauts aus ;)

DymonD 29. Okt 2005 23:48

Re: Datei auf Programm Icon ziehen -> Datei übergeben
 
Cool THX!
PS: könntest mir auch mal deinen NAMP vorstellen... ;)


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