Olá pessoal! Gostaria de compartilhar com vocês este incrível componente que possibilita enviar e receber mensagens através de uma rede bastando somente 2 linhas de comando.
Estive pesquisando
na internet como poderia fazer com que minhas aplicações trocassem mensagens
entre si através da rede, as soluções envolviam componentes das paletas FastNet,
Indy e outras, tudo muito complicado cheio de macetes e necessitando de muitas
linhas de código.
Já estava chateado
e quase desistindo quando me deparei com este componente maravilhoso chamado
TmdMailSlot!
Com código aberto
ele compilou perfeitamente em Delphi 4, 5 e 6, só não testei em Delphi 7 e 2005
porque não tenho essas versões do Delphi aqui comigo, mas não vejo porque não
funcionaria em versões mais recentes do Delphi.
Com apenas duas
linhas de comando, uma para enviar e outra para receber mensagens esse
componente faz com que as aplicações na rede conversem entre si com muita
facilidade proporcionando uma infinidade de benefícios limitados somente pela
criatividade de cada programador.
Imagine por
exemplo atualizar tabelas na rede somente quando necessário sem precisar usar
Timer, seria ótimo para diminuir o tráfego de dados desnecessário na rede.
Acompanhe os
passos abaixo para fazer com que esse componente funcione em seus programas:
Baixe a última
versão desse componente no site do autor Martin Djernæs
http://www.djernaes.dk/martin ou diretamente pelo link
http://djernaes.dk/martin/vcl.html#TmdMailSlot
Depois instale o componente no seu
Delphi, clique no menu "Component" Item "Install Component" selecione a Unit
mdMailSlot.pas e Instale.
A paleta mdVCL vai aparecer na barra
de ferramentas do Delphi com os seguintes componentes:

Crie
uma nova aplicação, depois insira no Form o componente mdMailSlot.
Na
propriedade Slot do componente, insira o nome do seu programa, isso fará com que
seu programa troque mensagens somente com outros programas que tenham o mesmo
nome na propriedade Slot do componente.
Não
use nomes muito grandes ou com espaçamentos!
Defina a propriedade Active do componente para True.
No
Evento OnMessageAvail insira o código que vai receber as mensagens:
If Msg <> '' Then ShowMessage('Mensagem
Recebida: ' + Msg);
Ou
If Msg = 'Mensagem' Then ShowMessage('Mensagem Recebida: ' +
Msg);
Ou
If Msg <> '' Then ShowMessage(Msg);
Ou
If Msg = 'Mensagem' Then ExecuteaRotinaQueQuiser;
E finalmente em qualquer momento que quiser enviar uma
mensagem para as aplicações nos computadores da rede, use o seguinte comando:
SendToMailSlot('*', mdMailSlot1.Slot, 'Mensagem');
O
asterisco indica que deseja enviar a mensagem para todas as máquinas da rede, se
quiser enviar uma mensagem somente para a máquina local, use um ponto '.' ao
invés de '*'
Troque a palavra mensagem pela mensagem que deseja enviar.
Pronto! Não foi fácil? Eu testei o funcionamento deste componente em uma pequena
rede de 3 computadores em que o servidor estava com
Windows XP e as estações com Windows 98 e 95. Quem testar em outras versões do
Windows, por favor, enviem comentários informando se funcionou ou não.
Quem
quiser também pode testar um programa de demonstração deste componente que está
disponível com código fonte no site do Autor do mdMailSlot.
Sou André Luiz de Souza
Fernandes, Técnico em Processamento de Dados, dono do site GSoftWares.COM e
responsável pelo projeto OpenSource de Portais PHP CPGNUKE no Brasil.
Contato suporte@gsoftwares.com
Um forte abraço a todos!
|