Fórum Passar parametro para form. #164045
02/06/2003
0
Tenho uma tela principal que chama os demais módulos.
Cada módulo, inclusive a tela principal é um exe.
Para abrir a tela principal é solicitado login de usuário.
Como posso passar o usuário que logou na tela principal para o módulo que o usuário acessar?Ou seja, como posso chamar um outro executável em meu sistema passando dados como parametro para ele?
Agradeço se puderem me ajudar.
Gedai
Curtir tópico
+ 0Posts
02/06/2003
Leandro Ribas
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
for I := 1 to ParamCount do begin
if ParamStr(I) = ´/sai´ then
Application.Terminate;
end;
e no programa principal vc faz assim:
procedure TPrincipal.Button1Click(Sender: TObject);
var
Erro: Word;
begin
Erro := WinExec(´arquivo.exe /sai´, SW_SHOW);
if Erro <= 31 then { Se ocorreu erro... }
ShowMessage(´Erro ao executar o programa.´);
end;
Falou.
Gostei + 0
02/06/2003
Gedai
Gostei + 0
02/06/2003
Gedai
Gostei + 0
02/06/2003
Leandro Ribas
public
UsuarioLogin : String;
end;
var
FRM_Prin: TFRM_Prin;
procedure TPrincipal.Button1Click(Sender: TObject);
var
Erro: Word;
begin
Erro := WinExec(´arquivo.exe /´+UsuarioLogin, SW_SHOW);
if Erro <= 31 then { Se ocorreu erro... }
ShowMessage(´Erro ao executar o programa.´);
end;
ae no programa que vc esta chamando vc pode fazer assim:
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
for I := 1 to ParamCount do begin
if ParamStr(I) <> ´´ then
UsuarioLogado := ParamStr(I);
end;
Falou.
Gostei + 0
02/06/2003
Nildo
No programa q vc quer chamar coloca na programacao do Projeto:
if paramStr(1) <> ´/NomeDoUsuario´ then
application.terminate;
E no programa q chama esse outro programa coloca assim:
WinExec(´Seuprograma.exe /NomeDoUsuario´, sw_show);
Gostei + 0
02/06/2003
Gedai
[b:fe126de198]Inconpatyble types:´String´ e ´PAnsiChar´[/b:fe126de198].
Eis o código:
[b:fe126de198]procedure TFormPrincipal.spbAcademicoClick(Sender: TObject);
var
vErro : Word;
vUsr : String;
begin
vUsr:= ´Carlos Caramujo´;
vErro:= WinExec(´C:\Programa\Base\Vendas.exe´ + vUsr, SW_SHOW);
if vErro <= 31 then
ShowMessage(´Erro ao executar o Módulo Vendas.´);
end;[/b:fe126de198]
Gostei + 0
02/06/2003
Nildo
procedure TFormPrincipal.spbAcademicoClick(Sender: TObject);
var
vErro : Word;
vUsr : String;
begin
vUsr:= ´Carlos Caramujo´;
vErro:= WinExec(PChar(´C:\Programa\Base\Vendas.exe /´ + vUsr), SW_SHOW);
if vErro <= 31 then
ShowMessage(´Erro ao executar o Módulo Vendas.´);
end;
Gostei + 0
02/06/2003
Nildo
Gostei + 0
02/06/2003
Gedai
Só uma observação, posso passar o nome do usuário com espaços. É só colocá-lo entre aspas duplas:
vUsr := ´´Carlos Caramujo´´;
funciona muito bem.
Mais uma vez obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)