Fórum Enviar dados de um programa para outro #363882

14/09/2008

0

Alguém sabe como posso enviar dados do meu programa para um outro?

Exemplo:

Cadastro de Clientes, tem os campos CÓDIGO e NOME DO CLIENTE.

No meu sistema eu possuo os dados do cliente e tenho 2 edits que representam o código e o nome do cliente.

A questão é: como posso enviar os dados que estão nos meus edit1 e edit2 para os 2 campos do outro sistema sem que eu tenha que copiar e colar do meu sistema para o outro?


Dgsfilho

Dgsfilho

Responder

Posts

14/09/2008

Paullsoftware

Na prática nunca fiz isso, mas tente pesquisar algo sobre SendMenssage e PostMenssage...


Responder

Gostei + 0

15/09/2008

Wdrocha

Bom dia....tenho certeza q este artigo cairá como uma luva.....


[url]https://www.devmedia.com.br/articles/viewcomp.asp?comp=1243&hl=[/url]

Espero ter ajudado....


Qualquer coisa....posta aew...



Flw


Responder

Gostei + 0

15/09/2008

Dgsfilho

Cara, já tive uma idéia de como fazer mais ou menos, só que preciso localizar o form para qual vai as informações e não sei o nome do form só sei o caption e preciso enviar 2 ou mais edits inteiros para os outros componentes da outra aplicação e isso num sei como fazer.


Responder

Gostei + 0

16/09/2008

Dgsfilho

É o seguinte: quase consegui. Com o código abaixo consigo enviar o texto para o último edit da aplicação. Se a aplicação que vai receber as informações tiver apenas um campo, envia normalmente, mas se a mesma tiver mais de um campo só é enviada a informação para o último campo. Gostaria de saber como enviar vários (8 especificamente) valores diferente para uma outra aplicação com 8 campos. Alguém sabe?


procedure TForm1.Button1Click(Sender: TObject);
var
  AppRX : HWND; // aplicação que vai receber as informações
  Campo : HWND; // campo da aplicação que vai receber as informações
  Txt : String; // Texto a ser enviado
begin
  Txt := ´Texto a ser inserido´;

  AppRX := FindWindow(nil,´Receptora´); // localiza a aplicação receptora pelo caption

  Campo := FindWindowEx(AppRX, 0, 0, nil ); // localiza o campo que vai receber a informação

  SendMessage(Campo, WM_SETTEXT, 0, DWord(PChar(Txt))); // envia o texto para o campo
end;



Responder

Gostei + 0

16/09/2008

Dgsfilho

sobe...


Responder

Gostei + 0

17/09/2008

Bononi

Eu uso estas funções que fiz a muito tempo:

function BuscaCtrlNr(hApp: HWND; ControlClassName: string; CtrlNr: Word = 1): HWND;
var
i: Word;
hControl: HWND;
begin
Result := 0;
if IsWindow(hApp) then
begin
Dec(CtrlNr);
hControl := 0;
for i := 0 to CtrlNr do
begin
Control:=FindWindowEx(hApp,hControl,PChar(ControlClassName), nil);
if hControl = 0 then
Exit;
end;
end;
Result := hControl;
end;


procedure InsTxtEd(hApp: HWND; EditClassName, ATxt: string; EditNr: Integer);
var
hEdit: HWND;
begin
// Exemplo Busca pelo 2o Edit na aplicação
hEdit := BuscaCtrlNr(FindWindow(´Nome da aplicação´, nil), ´Edit´, 2);
if hEdit <> 0 then
// Teste: Manda ´Oi!´ para o Edit
SendMessage(hEdit, WM_SETTEXT, 0, Integer(PChar(´Oi!´)));
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar