Cadastre-se Revistas DevMedia Cursos
 

Space de JOSE LUIZ DE MEDEIROS
Busca Autor


Últimas 20 atualizações de JOSE LUIZ DE MEDEIROS

Artigo - Função ParamStr - Passando Parâmetros via comando do Windows

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.

-->">
14/05/2012 11:11:00





Artigo - Verificar CNPJ

Numa aplicação comercial, sempre temos algumas validações necessarias e básicas. Vamos criar uma validação de um campo CNPJ.
Coloque numa nova aplicação um componente TEdit(que poderia tambem ser um TDBEdit):
 
 
 
No evento OnExit do TEdit1 digite esse código:
 
procedure TForm1.Edit1Exit(Sender: TObject);
var
n:array [1..11] of integer;
m:array [1..14] of integer;
dgt1,dgt2:integer;
soma1,soma2:integer;
begin
if copy(Edit1.Text,1,1) <> '' then
   begin
m[1]:=StrToInt(copy(Edit1.Text,1,1));
m[2]:=StrToInt(copy(Edit1.Text,2,1));
  //3
m[3]:=StrToInt(copy(Edit1.Text,4,1));
m[4]:=StrToInt(copy(Edit1.Text,5,1));
m[5]:=StrToInt(copy(Edit1.Text,6,1));
  //7
m[6]:=StrToInt(copy(Edit1.Text,8,1));
m[7]:=StrToInt(copy(Edit1.Text,9,1));
m[8]:=StrToInt(copy(Edit1.Text,10,1));
//11
m[9]:=StrToInt(copy(Edit1.Text,12,1));
m[10]:=StrToInt(copy(Edit1.Text,13,1));
m[11]:=StrToInt(copy(Edit1.Text,14,1));
m[12]:=StrToInt(copy(Edit1.Text,15,1));
// 16
m[13]:=StrToInt(copy(Edit1.Text,17,1));
m[14]:=StrToInt(copy(Edit1.Text,18,1));
soma1:=(m[1]*5) + (m[2]*4) + (m[3]*3) + (m[4]*2) + (m[5]*9) + (m[6]*8) +
(m[7]*7) + (m[8]*6) + (m[9]*5) + (m[10]*4) + (m[11]*3) + (m[12]*2);
dgt1:=11-(soma1 mod 11);
if (dgt1 = 10) or (dgt1 = 11) then
dgt1:=0;
soma2:=(m[1]*6) + (m[2]*5) + (m[3]*4) + (m[4]*3) + (m[5]*2) + (m[6]*9) +
(m[7]*8) + (m[8]*7) + (m[9]*6) + (m[10]*5) + (m[11]*4) + (m[12]*3) + (dgt1*2);
dgt2:=11-(soma2 mod 11);
if (dgt2 = 10) or (dgt2 = 11) then
 dgt2:=0;
if (dgt1 <> m[13]) or (dgt2 <> m[14]) then
 begin
 showmessage('Número do CNPJ Inválido. ');
 Edit1.SetFocus;
 abort;
 end;
    end;
    end;
 
Agora para testar digite assim um CNPJ: 00.000.000/0001-00, e faça um teste..
 
 
Em breve vou fazer o mesmo exemplo para um campo CPF, até a próxima..
 
 
Jose luiz
 
-->">
07/10/2008 23:35:00





 

Programador em delphi a 9 anos desde a versão 2. Professor em varios cursos de delphi com banco de dados a 3 anos. Varios sistemas desenvolvidos para empresas. Vasto entendimento em banco de dados, MYSQL, FIREBIRD. Programador em web na linguagem PHP a 2 anos.
Arquivo de atualizações
 2012
 2008

Estatísticas do Autor:
Número de posts: 2
Características dos posts deste autor:
Conteúdo:
Utilidade:
1 0
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group