Olá pessoal, vamos ver neste artigo de Delphi a função ParamStr.


Para que server essa função?

Podemos usar essa função para varias tarefas em nossa aplicação, uma delas que uso muito e inserir parâmetros em minha aplicação usando o comando do Windows.

Vejamos o código da mesma

Listagem 1: Código da Função ParamStr


function ParamStr(Index: Integer): string;
{$IFDEF MSWINDOWS}
var
  P: PChar;
  Buffer: array[0..260] of Char;
begin
  Result := '';
  if Index = 0 then
    SetString(Result, Buffer, GetModuleFileName(0, Buffer, Length(Buffer)))
  else
  begin
    P := GetCommandLine;
    while True do
    begin
      P := GetParamStr(P, Result);
      if (Index = 0) or (Result = '') then Break;
      Dec(Index);
    end;
  end;
{$ENDIF MSWINDOWS}
{$IF defined(LINUX) or defined(MACOSX)}
begin
  if Index < ArgCount then
    Result := PCharArray(ArgValues^)[Index]
  else
    Result := '';
{$IFEND LINUX or MACOSX}
end;

Podemos perceber que essa função pede um valor de entrada do tipo inteiro e me retorna uma string, vamos criar um exemplo simples para entender a função.

Crie uma nova aplicação VCL em Delphi, insira nesse form criado 3 componentes TLabes. Configure os componentes para ficar dessa forma:

Layout do projeto

Figura 1. Layout do projeto.

Listagem2: No evento onShow do Form:


procedure TForm2.FormShow(Sender: TObject);
begin
lbl1.Caption:=ParamStr(0);
lbl2.Caption:=ParamStr(1);
lbl3.Caption:=ParamStr(2);
end;

Click em F9 para compilar.

Salve o seu projeto, abra o prompt de comando do seu windows e digite o seguinte:

ParamStr.exe “JOSELUIZ” “DEVMEDIA”

Veja o resultado abaixo:

Resultado do código

Figura 2. Resultado do código.

Podemos ver que a posição 0 da função buscou o path do .exe, A posição 1 e 2 pegou as informações que eu passei entre aspas duplas “ PARAMETRO 1”

ESPAÇO “PARAMETRO 2”.

Lembrando que temos que inserir espaço entre os parâmetros.

Abraços e até o próximo artigo.