Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post 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!
Responder Con Cita
  #2  
Antiguo 12-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 12-12-2005 a las 20:40:59. Razón: Ampliación del texto.
Responder Con Cita
  #3  
Antiguo 12-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 13-12-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Thumbs up :)

Ya estoy en marcha con esto, Muchas Gracias!!
Responder Con Cita
  #5  
Antiguo 13-12-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Empezado por delphi.com.ar
Código Delphi [-]
if FindCmdLineSwitch('haceresto') then
  Lalalalala...
Me gustos esa sinfonia

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:07:00.


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
Copyright 1996-2007 Club Delphi