Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicacion con parametros... (https://www.clubdelphi.com/foros/showthread.php?t=28186)

marceloalegre 12-12-2005 20:23:53

Aplicacion con parametros...
 
Buenas...!
Les molesto para hacerles una consulta:
En una aplicacion que estoy haciendo quiero tener la posibilidad de ejecutarla con algunos paramentros

o sea miejecutable.exe /haceresto
o miejecutable.exe /haceraquello

....

no encuentro nada en el foro... puede que no este buscando bien... ni en el querido trucomania...
alguien me podra ayudar con este tema?

Gracias!

dec 12-12-2005 20:30:18

Hola,

Para eso cuentas en Delphi con las funciones "ParamCount" y "ParamStr". Puedes pasar parámetros a tu programa, vamos a suponer que "-hazesto", entonces podrías averiguar si dicho parámetro ha sido pasado de este modo, aunque como verás si haces algunas pruebas podrás hacerlo de otros, pero, siempre implicando las funciones susomentadas (al menos que yo sepa):

Código Delphi [-]
  procedure TForm1.FormCreate(Sender: TObject);
  var
    i: integer;
  begin
    for i := 0 to ParamCount do
    begin
      if (ParamStr(i) = '-hazesto') then
        ShowMessage('Quieres que haga esto...');
      if (ParamStr(i) = '-estotro') then
        ShowMessage('Quieres que haga esto otro...');
    end;
  end;
Puedes hacer pruebas desde el mismo Delphi, en el menú Run puedes elegir la opción "Parameters..." y ahí escribir los que necesites pasar al programa que estés "depurando". ;)

Edito: Cabe acaso añadir que el parámetro número 0 es siempre la ruta de tu programa, es decir, del ejecutable que va a procesar el resto de posibles parámetros.

Mira otro ejemplo, en este caso se supone que se nos puede pasar como primer parámetro (es decir, como parámetro 1) la ruta de un archivo de este modo: "-C:\boot.ini". Observa que el caracter de guión es opcional, no es necesario, y que las comillas lo serán siempre que la ruta del archivo en cuestión tenga espacios en blanco:

Código Delphi [-]
 procedure TForm1.FormCreate(Sender: TObject);
 begin
   // Vamos a quitar el guión al principio de la cadena que guarda el
   // parámetro número 1, pero, esto es opcional: podemos recibir pa-
   // rámetros sin este caracter de guión ni otro cualquiera.
   //
   if (FileExists(AnsiRightStr(ParamStr(1), Length(ParamStr(1))-1))) then
     ShowMessage('Se pasó un archivo válido como parámetro número 1')
   else
     ShowMessage('No se pasó un archivo válido como parámetro número 1');
 end;

delphi.com.ar 12-12-2005 20:44:00

Agrego: Creo que a partir de Delphi 6, apareció en la unit SysUtils la función FindCmdLineSwitch, que sirve para saber si en la línea de comandos existe alguno de los parámetros esperados:
Código Delphi [-]
if FindCmdLineSwitch('haceresto') then
  Lalalalala...

Tengo una unit de mi autoría que sirve para hacer cosas similares, como tomar los valores de un parámetro del tipo "/Param:Fede"... Si les interesa y me acuerdo de traerla la subo!

Saludos!

marceloalegre 13-12-2005 13:20:50

:)
 
Ya estoy en marcha con esto, Muchas Gracias!!

vtdeleon 13-12-2005 16:13:03

Cita:

Empezado por delphi.com.ar
Código Delphi [-]
if FindCmdLineSwitch('haceresto') then
  Lalalalala...

Me gustos esa sinfonia :D :D

Saludos


La franja horaria es GMT +2. Ahora son las 04:10:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi