Skip to content

ParamStr(), aplicaciones de Delphi con Parámetros

Aunque la ejecución de una aplicación con parámetros era más de la vieja época, las nuevas versiones de los sistemas operativos permites ejecutar parámetros en una aplicación.

Y Delphi, como cualquier otro lenguaje de programación permite crear aplicaciones que lean los parámetros enviados y poder interactuar con ellos a través de la función ParamStr().

No solo en tiempo de ejecución podemos leer parámetros enviados a la aplicación, sino que en tiempo de Debug también lo podemos hacer. Para ello debemos ir al menú Run -> Parameters y allí colocar los parámetros necesarios par cada una de las versiones de la aplicación.

ParamStr() y ParamCount()

Para poder interactuar con los parámetros enviados a la aplicación, debemos conocer primero si se han enviado algunos parámetros o no.

Para conocer este dato, tenemos la función ParamCount(), que nos devuelve la cantidad de parámetros recibidos por la aplicación ejecutada.

Conocer la cantidad de parámetros recibidos es crucial para evitar errores de tipo Access Violation, ya que si queremos leer un parámetro con la función ParamStr(0), y no hemos recibido dicho parámetro, recibiremos el error antes mencionado.

Donde leer los parámetros recibidos

Los parámetros enviados a una aplicación están disponibles desde que se ejecuta el evento onActivate en adelante.

O sea que desde que se activa la aplicación y durante toda la misma de la misma, podremos accedes a todos los parámetros recibidos, inclusive en el evento onDestroy.

Ejemplo de ParamStr()

Para realizar este ejemplo de las funciones ParamStr() y ParamCount(), creamos una aplicación en blanco y en el formulario colocamos un TMemo como mostramos en la imagen siguiente:

ParamStr y ParamCount Example

Abrimos el menú Run -> Parameters y dentro del cuadro de diálogo, en la opción Parameters colocamos algunos parámetros para probar como figura en la imagen siguiente:

Parámetros en Delphi

Luego, colocamos el siguiente código dentro del evento onActivate del Formulario:

procedure TForm1.FormActivate(Sender: TObject);
var
  I: Integer;
begin
  {Vaciamos el memo}
  memo1.Lines.Clear;

  {Leemos los parámetros recibidos y los mostramos en el memo}
  for I := 0 to ParamCount() do
  begin
    memo1.Lines.Add(('Parámetro '+IntToStr(I)+' = '+ParamStr(I)));
  end;
end;

Al ejecutar la aplicación nos encontraremos con que en el memo nos muestra todos los parámetros que hemos enviado a la aplicación:

Delphi Parámetros recibidos

(Si, ya se, tres en inglés se escribe Three) 🙂

Pero nos encontramos con una sorpresa, el Parámetro 0. Este parámetro, con índice cero, lo vamos a tener presente en toda ejecución de las aplicaciones, y no es más que el Path completo y nombre de nuestra aplicación con extensión incluida.

Recordar, si en algún momento necesitamos el path donde se encuentra nuestro ejecutable o el nombre del archivo, lo tendremos a disposición con la función ParamStr(0).