Ouvrir un fichier avec son programme delphi [Résolu]

tux22 20 Messages postés mardi 1 novembre 2005Date d'inscription 25 juillet 2006 Dernière intervention - 20 juin 2006 à 18:49 - Dernière réponse : ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention
- 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.
@++
Afficher la suite 

8 réponses

Répondre au sujet
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 20 juin 2006 à 22:17
+3
Utile
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 +
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ThWilliam
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 20 juin 2006 à 19:56
0
Utile
Salut,

Essaie ceci :

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

A +
Commenter la réponse de ThWilliam
tux22 20 Messages postés mardi 1 novembre 2005Date d'inscription 25 juillet 2006 Dernière intervention - 20 juin 2006 à 21:48
0
Utile
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 :)

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

@++
Commenter la réponse de tux22
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 23 juin 2006 à 18:08
0
Utile
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
Commenter la réponse de f0xi
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 23 juin 2006 à 19:57
0
Utile
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
Commenter la réponse de ThWilliam
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 24 juin 2006 à 03:45
0
Utile
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.



 
Commenter la réponse de f0xi
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 24 juin 2006 à 10:22
0
Utile
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
Commenter la réponse de ThWilliam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.