
12/09/2021 (versão 1.9)
13/03/2021 (versão 1.8)
01/02/2021 (versão 1.7)
18/12/2020 (versão 1.6)
28/11/2020 (versão 1.5)
11/01/2020 (versão 1.4)
31/10/2020 (versão 1.3)
27/10/2020 (versão 1.2)
26/10/2020 (versão 1.1)
05/05/2020
03/11/2019
O DzTalkApp permite enviar dados entre aplicativos distintos. Você pode enviar um tipo de dados simples, como número inteiro ou string e até dados complexos, como um registro.
Suporta Delphi Xe3..Delphi 11
Solte um tdzTalkApp nos aplicativos de origem e destino.
Você só precisa definir o nome da janela no componente e a comunicação ocorrerá entre as alças da janela.
No aplicativo de destino, basta definir o evento OnMessage para receber e ler dados.
AutoActivate: Boolean = ativado automaticamente a alça no componente carregado. Isso só funcionará quando você definir outras propriedades no modo de tempo de design.
AutoFind: Boolean = Quando o autofind é ativado, em cada comando de envio, o componente encontrará o identificador da janela de destino.
MyWindowName: String = Especifique o nome do identificador de origem. Esta propriedade é necessária apenas se este aplicativo receberá comunicação. Caso contrário, você só precisará definir o nome da janela de destino.
DestWindowName: String = Especifique o nome da janela de destino. Esta propriedade é necessária apenas se este aplicativo enviará comunicação, caso contrário, você precisará definir o nome da alça da janela de origem.
Synchronous: Boolean = Se esta propriedade estiver ativada, quando você enviar um comando para outro aplicativo, o ponteiro de execução será liberado somente após o término do método de aplicativo de destino OnMessage . Se essa propriedade estiver desativada, quando o destino receber a mensagem, imediatamente o ponteiro de execução será liberado no aplicativo de origem.
Active: Boolean (somente leitura pública) = indica se o componente está ativado ou desativado (consulte Métodos Enable e Disable ).
ToHandle: HWND (público) = armazena a última janela de destino. Você pode definir esta propriedade manualmente, se necessário, mas eu recomendo que você use o método FindDestWindow .
procedure Enable ;Ativa a alça da janela para enviar e receber mensagens. Você precisa especificar o nome da alça da janela antes de usar esse método.
procedure Disable ;Desativa a alça da janela.
procedure FindDestWindow ; Encontre e defina o identificador da janela de destino pelo nome definido na propriedade DestWindowName . Se a janela de destino não for encontrada, um erro será aumentado, usando a classe EDzTalkAppWndNotFound .
procedure Send (ID: Word); overload;
procedure Send (ID: Word; N: Integer); overload;
procedure Send (ID: Word; const A: string); overload;
procedure Send (ID: Word; P: Pointer; Size: Cardinal); overload;
procedure Send (ID: Word; S: TMemoryStream); overload; Use métodos de envio para enviar uma mensagem para o aplicativo de destino. Para enviar mensagens, o componente precisa ser ativado (use o método Enable ) e precisa de um nome de janela de destino definido (Use DestWindowName Propriedade).
Os métodos de sobrecarga permitem enviar:
Apenas um comando, usando o parâmetro ID
Um comando com um parâmetro inteiro, usando o parâmetro N
Um comando com um parâmetro de string, usando A parâmetro
Um comando com qualquer tipo de parâmetro de dados, usando o parâmetro P e especificando o tamanho do parâmetro de dados.
Um comando com um fluxo de dados de memória, usando o parâmetro S
function AsString : string;Use esta função dentro do evento OnMessage para obter dados de uma mensagem como tipo de string.
function AsInteger : Integer;Use esta função dentro do evento OnMessage para obter dados de uma mensagem como tipo inteiro.
procedure AsStream (Stm: TStream);Use este procedimento dentro do evento OnMessage para obter dados de uma mensagem como tipo TStream (o objeto precisa ser criado antes de chamar esse método).
function GetResult : Integer; Você pode usar esta função diretamente após o método Send de chamada para obter o código de resultado da mensagem recebida pelo aplicativo de destino. Você pode definir esse resultado no evento OnMessage no aplicativo de destino. Por favor, consulte a descrição do evento OnMessage.
procedure OnMessage (Sender: TObject; From: HWND; ID: Word; P: Pointer; Size: Cardinal; var Result: Integer); Este método ocorrerá no aplicativo de destino quando uma mensagem for recebida. O parâmetro From parâmetro indica o identificador da janela de origem. O parâmetro ID indica o código da mensagem usada no método Send no aplicativo de origem. O parâmetro P possui o ponteiro dos dados da mensagem. O parâmetro Size permite saber o tamanho dos dados recebidos.
O parâmetro Result permite definir um código de resultado para retornar ao aplicativo do remetente (o aplicativo do remetente deve usar a função GetResult logo após o uso do método Send para ler este código de resultado).
Você pode usar os métodos de AsString , AsInteger ou AsStream para obter o conteúdo dos dados da mensagem como tipo específico.
Você pode enviar uma estrutura de registro. Para fazer isso, verifique se você está sempre usando packed record , porque esse tipo de registro usará uma estrutura de tamanho fixo.
Para enviar um registro, use:
type
TData = packed record
Number: Integer;
Text: ShortString;
Flag: Boolean;
end ;
var R: TData;
begin
R.Number := 100 ;
R.Text := ' TEST ' ;
R.Flag := True;
DzTalkApp.Send( 1 , @R, SizeOf(R));
end ;Para receber este registro usando o evento OnMessage:
var R: TData;
begin
R := TData(P^);
end ;Obviamente, o registro embalado no aplicativo de destino deve ter a mesma estrutura que o registro usado no aplicativo do remetente.
Para enviar um tipo duplo:
var D: Double;
begin
DzTalkApp.Send( 1 , @D, SizeOf(D));
end ;Para receber um tipo duplo (Evento OnMessage):
var D: Double;
begin
D := Double(P^);
end ;