Neste artigo, será feito alguns exemplos de uso dos componentes TDdeClient e TDdeServer.
A tecnologia DDE significa Dynamic Data Exchange (Inglês intercâmbio dinâmico de dados),
ou seja, a troca de dados entre processos.
DDE permite que duas aplicações em execução para compartilhar um conjunto de dados.
Isso não pode acontecer normalmente devido à virtualização do espaço de armazenamento,
de modo que cada processo pode ler e gravar dados em sua memória virtual, mas nunca
sobre a de outro processo.
O problema é que muitas aplicações têm a necessidade de se comunicar entre si sem a
utilização de ficheiros externos, e com isso surgiu o DDE.
Um exemplo de intercâmbio dinâmico de dados é entre os dados de uma planilha em um
documento criado com um processador de texto, caso a mudança de dados em um
aplicativo é transmitido diretamente para o outro.
A tecnologia DDE representou o início deste modo de conceber o
intercâmbio de dados, já que agora as suas características têm sido largamente
suplantado pelo OLE. No entanto DDE ainda é usado em algumas áreas devido à sua
simplicidade. Tal é o mecanismo usado pelo Windows Explorer para comunicar um
aplicativo já aberto para abrir um novo arquivo (caso contrário, o novo arquivo iria
abrir em uma nova instância do aplicativo).
Interessante é a sua facilidade de uso, porque os componentes que são encontrados na
‘IDE do Delphi, apesar de pouco material sobre o assunto, são muito simples de usar.
A seguir, será visto um exemplo:
É necessário criar duas aplicações:
Uma deve ser o cliente e a outra servidor e tudo o que é digitado no servidor deve
estar no cliente e vice-versa.
Ambas as aplicações serão aplicação VCL e será adicionado
TDdClientConv e TDdeClientItem para o cliente e TDdServerConv e TDdeServerItem para
o servidor.
O memo deve ser conectado ao respectivo Conv componente.
A comunicação do servidor para o cliente usará o campo de texto, que vai ser ligada ao
memo do cliente, de modo que qualquer modificação na primeiro repercute sobre a segundo.
A comunicação do cliente para o servidor, em vez fazer a ocorrer utilizando a função do
cliente ExecuteMacro, enviando assim como parâmetro os dados que eu quero transmitir
para o servidor.
O servidor é relativamente simples, já que vamos criar um manipulador para o evento
OnExecuteMacro e enviar dados, alterando a ServerItem.
procedure TForm1.Edit2Change(Sender: TObject);
begin
DdeServerItem1.Text:=Edit2.Text;
end;
No cliente, no entanto, o processo é um pouco mais complicadas, porque temos de
definir todos os dados para se conectar ao servidor e o link para o item. Por uma
questão de clareza, foi optado por separá-los.
A configuração da conexão com o servidor tem dois parâmetros, o primeiro é o nome
do servidor de aplicativos sem a extensão “.exe” , por isso, uma vez que no nosso
caso, a aplicação é chamada de “server.exe” deve-se informar apenas “server “.
O segundo parâmetro contém o nome do componente TDdeServerConv usado no servidor,
que neste exemplo é DdeServerConv1.
Se os dois aplicativos estiverem em pastas diferentes, será necessário definir o
ServiceApplication com o caminho completo sem a extensão
(exemplo: “D: \ test \ server”).
1
DdeClientItem1.DdeItem:='DdeServerItem1';
DdeClientItem1.DdeItem := 'DdeServerItem1';
Nesta forma, os dois itens serão interligados e, em seguida, quando as ocorrer
mudanças do texto no servidor, elas serão encaminhadas para o cliente, que
poderá visualizá-las.
1
2
3
4
5
procedure TForm1.DdeClientItem1Change(Sender:TObject);begin// When the client item will be changed then update memo
memo1.Lines[1]:= DdeClientItem1.Text;end;
procedure TForm1.DdeClientItem1Change(Sender: TObject);
begin
// When the client item will be changed then update memo
memo1.Lines[1] := DdeClientItem1.Text;
end;
Finalmente, deve-se de enviar o texto a partir do cliente para o servidor com a
função ExecuteMacro:
1
DdeClientConv1.ExecuteMacroLines(list,false);
DdeClientConv1.ExecuteMacroLines(list,false);
O resultado será que tudo o que está escrito no cliente, após a conexão com
DDESERVER, será exibido no servidor e o que está escrito para o servidor será
exibido no cliente.
Caso haver mais clientes conectados ao mesmo servidor, o que vai acontecer é
que eles vão receber os mesmos dados ao mesmo tempo a partir do servidor e cada
cliente irá transmitir normalmente seus dados para o servidor.
Abaixo está disponível dois projetos, o Cliente e Servidr utilizando a
tecnologia DDE para se comunicar uns com os outros. Projeto compilado no
Delphi XE 7.
Espero que este arquivo já útil e esteja a vontade para enviar a sua sugestão.
Olá, pedimos desculpas pelo transtorno e aproveitamos para informar que o link para download está no ar novamente.
Lembrando que para efetuar o download você deve estar logado no site.
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.
oi, problema 404 (não encontrado) no link dos arquivos dos projetos
Olá, pedimos desculpas pelo transtorno e aproveitamos para informar que o link para download está no ar novamente.
Lembrando que para efetuar o download você deve estar logado no site.
Link nao funciona
Link quebrado