Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

aeamorim

passagem de parametro

Recommended Posts

boa tarde pessoalsou novo com desenvolvimento em delphi e tb aki no forum e tenho uma porção de duvidas que gostaria de esclarecer pouco a pouco.olhando o forum vi que em uma duvida aki postada há a possibilidade de chamar um executavel atraves do projeto como por exemplo:WinExec('executavel', SW_SHOW);a minha primeira duvida eh o seguinte:tem como eu chamar um programa externo passando um parametro pra ele, como eu faço a recepcao deste parametro no delphi????, e como eu posso passar este parametro atraves do delphi????no visual basic a sintaxe eh a seguinte:shell("executavel" + parametro, 1)como ficaria isso no delphi??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do mesmo jeito....Winexec('Command.com /C Teste.exe',Tipo_de_Janela);Tipo de Janelas :SW_SHOWNORMAL - Visualização normal da janelaSW_MAXIMIZE - Janela maximizadaSW_MINIMIZE - Janela minimizada SW_HIDE - Escondido Apagar arquivos via MS-DOS = WinExec('Command.com /c Del c:\temp\*.tmp', 0) ;Imprimindo com o Bloco de Notas = WinExec('NotePad.exe /p c:\FileName.txt', 0) ;Executando o comando ARJ em um aplicativo Delphi =WinExec('command.com /c Arj a -vva -jm -p1 -r a:copia.arj + Arj C:\Meus Documentos\*.* A:/copia.arj', WS_MAXIMIZE);Ok! espero ter ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajudou e muito, mas ainda me resta uma duvida:e se eu quiser passar esse parametro de um programa delphi para um outro sendo que eu preciso tratar a informação no segundo, como eu faco a recepcao do parametro????/ou até mesmo como se eu quisesse colocar esse parametro no atalho do aplicativo como parametro no iniciar em.como eu recebo esse parametro no meu programa??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Aeamorim,Espero que estes trechos ajudem:********** PASSANDO OS PARÂMETROS ***********function TForm1.ExecutaSISTEMA: Boolean;var par: string; e: Cardinal;begin // Ordenação dos parâmetros (Usuário, Senha, Unidade, Contrato, Sistema) par := edtUsuario.Text + ' ' + edtSenhaUser.Text + ' ' + edtEntidade.Text + ' ' + edtNumContrato.Text + ' ' + edtIdSistema.Text; e := ShellExecute(0, nil, PChar(ExtractFilePath(Application.ExeName) + edtNomeExeSistema.Text), PChar(par), nil, SW_SHOWNORMAL); Result := True;if e <> 42 then begin ShowMessage('Erro ao executar o Programa ' + edtNomeExeSistema.Text); Result := False;end;********** FIM DA PASSAGEM DE PARÂMETROS ***********Note que os parâmetros apenas são separados por espaços " " e concatenados na string "par" que depois é convertida em Char.O comando principal é o ShellExecute, onde o trecho "PChar(ExtractFilePath(Application.ExeName) + edtNomeExeSistema.Text)" corresponde ao caminho do executável que você irá chamar e passar parâmetros para que ele possa ler.********** LENDO OS PARÂMETROS PASSADOS ***********procedure TForm1.Button1Click(Sender: TObject);var vCodContrato, vCodEntidade : Integer; vUsuario, vSenha : string;begin try vCodContrato := StrToInt(ParamStr(1)); vCodEntidade := StrToInt(ParamStr(2)); vUsuario := ParamStr(3); vSenha := ParamStr(4); ShowMessage('Contrato: '+IntToStr(vCodContrato)); ShowMessage('Entidade: '+IntToStr(vCodEntidade)); ShowMessage('Usuário: '+vUsuario); ShowMessage('Senha: '+vSenha); Except ShowMessage('Não foram passados parâmetros!'); end;end;********** FIM DA LEITURA DOS PARÂMETROS PASSADOS ***********Note que a leitura dos parâmetros pelo comando ParamStr() inicia-se com o número 1, que o primeiro parâmetro passado e segue a ordem crescente.OBS: O ParamStr(0) retorna o caminho do sistema que está sendo executado.Espero ter ajudado, e estou à disposição para explicar melhor o assunto caso seja necessário!Joel Matos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.