tux22
Messages postés20Date d'inscriptionmardi 1 novembre 2005StatutMembreDernière intervention25 juillet 2006
-
20 juin 2006 à 18:49
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 2013
-
24 juin 2006 à 10:22
Salut a tous,
J'ai coder un lecteur audio qui marche parfaitement seulement j'aimerais que l'orque je fais Clique droit (sur un mp3 par exemple) et que j'execute avec mon projet, le lecteur ouvre le fichier séléctionné.
Je pense que ça doit se placer dans:
Procedure Tform1.FormCreate ou Tform1.FormActivate enfin je suis pas sûr.
Si quelqu'un pouvait me mettre sur la voix ou me donner le code, ça serait sympa
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 20 juin 2006 à 22:17
Salut,
Je viens de tester ceci et qui marche parfaitement avec les extensions .wav, .mid, .mp3 :
procedure TForm1.FormCreate(Sender: TObject);
begin
FileName:= ParamStr(1);
if FileName <> '' then // ajouter : si l'extension est ...
begin
MediaPlayer1.Filename := Filename;
MediaPlayer1.Open;
end;
end;
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 23 juin 2006 à 19:57
Salut f0xi,
Calme, calme...
if FileName <> '' : ne fait que tester si un paramètre est envoyé au programme.
Si oui, bien sûr après, on fait un FileExist dans la procédure chargée d'ouvrir le fichier !!! (ok, je ne l'ai pas fait dans le code d'exemple)
Si tu fais :
FileName:= ParamStr(1);
if FileExists(FileName) then ...
tu testes l'existence d'un fichier dont le nom peut être = '' !
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 24 juin 2006 à 03:45
Le prend pas mal willy, c'est juste que la tu es dans la mauvaise direction :
Begin
if ParamCount = 0 then begin
MessageDlg('Vous devez passer un nom de fichier valide en parametre',
mtWarning,[mbOk],0);
Application.Terminate;
end;
L'erreur est humaine, y'a rien d'agressif dans ce que je dis et je n'ai pas pour but de faire passer les autres pour des idiots car moi aussi je me trompe souvent.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 24 juin 2006 à 10:22
Salut f0xi,
Merci pour la courtoisie de ta réponse.
Si je peux me permettre une remarque sur ton code :
if ParamCount = 0 then ... Application.Terminate : il devient donc impossible de lancer l'application sans lui envoyer un nom de fichier en paramètre. Or notre ami tux22 voudrait avoir le choix : run avec clic droit sur fichier, ou run normal avec choix du fichier dans un OpenDialog.
Voici ce que, personnellement, je ferais :
if ParamCount > 0 then
begin
FileName := ParamStr(1);
if FileName <> '' then // pour ne pas tester un nom vide
begin
if not FileExists(FileName) then
MessageDlg('Le fichier : '+FileName+#13+#10+'n''existe pas.',
mtError,[mbOk],0)
else // test des extensions acceptées par l'application
if Pos(ExtractFileExt(FileName), '.mid;.wav;.mp3') = 0 then
MessageDlg('Cette application ne peut ouvrir ce type de fichier',
mtError,[mbOk],0)
else
begin
MediaPlayer1.FileName := FileName;
MediaPlayer1.Open;
end;
end;
end;