Passer des paramètres

ogizmo Messages postés 11 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 26 novembre 2002 - 27 mai 2002 à 12:24
pianila Messages postés 1 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 3 mars 2006 - 3 mars 2006 à 17:11
Bonjour à tous,

débutant sous delphi (et en programmation de manière générale), je souhaiterai savoir comment passer des paramètres à une application.
exemple :
application.exe truc
lance l'application "application.exe" avec le paramètre truc utile pour le déroulement de l'application. je ne sais pas si je suis clair...

Merci pour votre aide.

7 réponses

DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
27 mai 2002 à 12:53
Dans uses il te faut ShellApi

ShellExecute(0, nil, 'application', 'truc', nil, sw_normal);

----------------------------------
DelphiCool
http://progzed.free.fr
http://u.p.s.free.fr

http://progzed.free.fr/forum
0
ogizmo Messages postés 11 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 26 novembre 2002
27 mai 2002 à 14:38
Je me suis mal exprimé : je souhaite passer des paramètres à mon application delphi lors de son exécution. Si je créé par ex une appli qui édite les fichiers texte, comment puis-je passer en paramètre le nom du fichier texte pour que lorsque je lance mon appli delphi, ce fichier s'ouvre directement ?
Merci en tout cas pour cette première réponse.
0
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
27 mai 2002 à 15:22
tu aurras le nom du fichier dans paramstr(1)

var s:string;
s := paramstr(1);

----------------------------------
DelphiCool
http://progzed.free.fr
http://u.p.s.free.fr

http://progzed.free.fr/forum
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
27 mai 2002 à 19:32
Le nombre de paramètres reçus par l'application est contenu dans ParamCount.

Si tu souhaites utiliser des commutateurs sur la ligne de commande, utilises plutôt la fonction FindCommandLineSwitch.

May Delphi be with you.
Delphi advanced
0

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

Posez votre question
ogizmo Messages postés 11 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 26 novembre 2002
29 mai 2002 à 11:04
Merci à tous pour votre aide !

ogizmo
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
13 janv. 2003 à 20:56
J'ai le même problème mais moi c plus complexe. En fait, le problème c'est avec les noms de fichiers longs. exemple :

E:\Documents and Settings\DeZNiUS\Bureau\file.txt

dans ce nom de fichier, il y a des espaces, donc problème.
En effet, ParamStr(1) va renvoyer = "E:\Documents".
de la même manière, ParamStr(2) = "and", etc.

Comment faire si je veux ouvrir le fichier file.txt ?
j'ai pensé à :

var
Filename : string;
i : integer;

i := 0;
Filename := '';

repeat
FileName := Filename + ParamStr(i)
Inc(i)
until i = ParamCount;

mais problème ! dans cet exemple ca fait :
E:\DocumentsandSettings\DeZNiUS\Bureau\file.txt

autrement dit impossible !

j'ai pensé à GetCurrentDir, mais ca se limite à ca :

E:\Documents and Settings\DeZNiUS\Bureau\

Comment faire pour avoir le nom de fichier ?

en fesant ParamStr(3); ?
oui, mais le problem, c'est que ca renvoi :

"Settings\DeZNiUS\Bureau\file.txt".

Donc that's the problem.

please help me; surtout que ca est un probleme con :)
0
pianila Messages postés 1 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 3 mars 2006
3 mars 2006 à 17:11
Try this thing:

var s:string;
....
begin
....
s := StrPas(CmdLine);
{$IFDEF WIN32}
Delete(s, 1, Pos('" ', s) + 1);
{$ENDIF}
...{s will be : E:\Documents and Settings\DeZNiUS\Bureau\file.txt }
end;
0
Rejoignez-nous