Fórum Compartilhar uma conexao entre dois programas exe diferentes #14373
21/01/2010
0
Temos um grande sistema todo desenvolvido como BPL's, agora vamos desenvolver um novo módulo no método tradicional Delphi EXE.
O sistema principal parte de um EXE que conecta e chama dinamicamente as BPLs e monta o menu do sistema.
Neste menu terá uma chamada ao EXE do novo módulo. Gostaríamos de passar para o EXE a conexão (um componente Zconnection).
Tentamos passar através do endereço de memória e string na chamada do EXE, mas não consigo atribuir um endereço de memória ao objeto Zconnection do segundo EXE. Tentei com ponteiros mas acho que está operação não existe né?
EXE_BPL --> conecta Zconnection
EXE_BPL --> chama EXE_NOVO passando endereço de memória do Zconnection como parametro string
EXE_NOVO --> Zconnection <-- endereço de memoria passado *** :( aqui nao consegui.
Desde já agradeco.
Júlia Correia
Curtir tópico
+ 0Posts
20/05/2010
Fernando Vicari
Gostei + 0
20/05/2010
Emerson Lara
Gostei + 0
20/05/2010
Fernando Vicari
procedure TPrograma1.Button1Click(Sender: TObject);
var
iteste: integer;
begin
// pega o endereço da memória
iteste := Integer(Conexao);
// chama o outro programa passando o endereço.
WinExec(PChar('D:\C_Fontes\ADM\Projeto\programa2.exe ' + IntToStr(iteste)),SW_SHOWNORMAL)
end;
No segundo programa vc deve ler o endereço e atribuir ao componente de conexão, conforme abaixo:
procedure TPrograma2.FormCreate(Sender: TObject);
begin
// Cria o componente em tempo de execução
Conexao := TOracleSession.Create(Self);
// Se não vir o parametro eu conecto novamente
if Trim(ParamStr(1)) = '' then
begin
Conexao.LogonDatabase := 'BASE';
Conexao.LogonUsername := 'USUARIO';
Conexao.LogonPassword := 'Senha';
Conexao.Connected := True;
end
else
begin
// Se vier o parametro eu utilizo a mesma conexão
ShowMessage(ParamStr(1));
Conexao := TOracleSession(StrToInt(ParamStr(1)));
if Conexao.Connected then
ShowMessage('Conectado')
else
ShowMessage('Não Conectado');
end;
end;
Gostei + 0
20/05/2010
Fernando Vicari
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)