Ver Mensaje Individual
  #2  
Antiguo 12-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.110
Reputación: 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