Ouvrir un fichier avec son programme delphi

Résolu
tux22 Messages postés 20 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 25 juillet 2006 - 20 juin 2006 à 18:49
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 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

Merci d'avance pour vos réponses.
@++

8 réponses

ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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;

A +
3
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
20 juin 2006 à 19:56
Salut,

Essaie ceci :

procedure TForm1.FormCreate(Sender: TObject);
begin    FileName:ParamStr(1);   // FileName variable string
    if FileName <> '' then TaProcedureOuvertureFichier;
end;

A +
0
tux22 Messages postés 20 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 25 juillet 2006
20 juin 2006 à 21:48
Merci d'avoir répondu mais ça ne marche pas:

"Impossible de determiner le type du périphérique à partir de l'extension du nom de fichier donnée."

Si tu as une solution ou si qq'un d'autre a la solution a mon probleme, je suis toujours preneur :)

@+
0
tux22 Messages postés 20 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 25 juillet 2006
20 juin 2006 à 22:31
Nikel merci bien!
Réponse rapide et efficace.

@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
23 juin 2006 à 18:08
RHAAA!

IF FILEEXISTS(FILENAME) THEN

c'est quoi c'te methode a deux france cinquante ancien.

on test pas un fichier en faisant <> '' parce que meme si non vide ... il n'est pas sur que le fichier existe.
donc FileExists
0
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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 = '' !

A +
Thierry
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
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;
 
  FileName := ParamStr(1);

  if not FileExists(FileName) then begin

     MessageDlg('Le fichier : '+FileName+#13+#10+'n'existe pas.',

                mtWarning,[mbOk],0);

     Application.Terminate;

  end;

  MediaPlayer1.FileName := FileName;
  MediaPlayer1.Open;
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.



 
0
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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;

A +
Thierry
0
Rejoignez-nous