
09/12/2021 (version 1.9)
13/03/2021 (version 1.8)
02/01/2021 (version 1.7)
18/12/2020 (version 1.6)
28/11/2020 (version 1.5)
11/01/2020 (version 1.4)
31/10/2020 (version 1.3)
27/10/2020 (version 1.2)
26/10/2020 (version 1.1)
05/03/2020
03/11/2019
DZTALKApp vous permet d'envoyer des données entre des applications distinctes. Vous pouvez envoyer un type de données simple comme un entier ou une chaîne, et même des données complexes, comme un enregistrement.
Prend en charge Delphi Xe3..Delphi 11
Déposez un TDZTALKApp dans les applications source et de destination.
Il vous suffit de définir le nom de la fenêtre dans le composant et la communication se produira entre les poignées de fenêtre.
Dans l'application de destination, définissez simplement l'événement OnMessage pour recevoir et lire des données.
AutoActivate: Boolean = Auto-inable La poignée du composant chargé. Cela ne fonctionnera que lorsque vous définissez d'autres propriétés en mode conception-temps.
AutoFind: Boolean = lorsque AutoFind est activé, sur chaque commande Send, le composant trouvera la poignée de la fenêtre de destination.
MyWindowName: String = Spécifiez le nom de la poignée source. Cette propriété n'est nécessaire que si cette application recevra une communication. Sinon, il vous suffit de définir le nom de la fenêtre de destination.
DestWindowName: String = spécifiez le nom de la fenêtre de destination. Cette propriété n'est nécessaire que si cette application enverra la communication, sinon vous n'avez besoin que de définir le nom de la poignée de la fenêtre source.
Synchronous: Boolean = Si cette propriété est activée, lorsque vous envoyez une commande à une autre application, le pointeur d'exécution ne sera publié qu'après la fin de la méthode OnMessage la méthode de destination. Si cette propriété est désactivée, lorsque la destination reçoit le message, le pointeur d'exécution est immédiatement libéré dans l'application source.
Active: Boolean (Public Read only) = indique si le composant est activé ou désactivé (voir Méthodes Enable et Disable ).
ToHandle: HWND (public) = stocke la dernière poignée de fenêtre de destination. Vous pouvez définir cette propriété manuellement si nécessaire, mais je vous recommande d'utiliser la méthode FindDestWindow à la place.
procedure Enable ;Permet à la poignée de fenêtre d'envoyer et de recevoir des messages. Vous devez spécifier le nom de la poignée de fenêtre avant d'utiliser cette méthode.
procedure Disable ;Désactive la poignée de fenêtre.
procedure FindDestWindow ; Trouvez et définissez la poignée de la fenêtre de destination par le nom défini dans la propriété DestWindowName . Si la fenêtre de destination n'est pas trouvée, une erreur est augmentée, en utilisant la 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; Utilisez des méthodes d'envoi pour envoyer un message à l'application de destination. Pour envoyer des messages, le composant doit être activé (utilisez la méthode Enable ) et a besoin d'un nom de fenêtre de destination défini (utilisez la propriété DestWindowName ).
Les méthodes de surcharge vous permet d'envoyer:
Seulement une commande, en utilisant le paramètre ID
Une commande avec un paramètre entier, en utilisant le paramètre N
Une commande avec un paramètre de chaîne, en utilisant A paramètre
Une commande avec tout type de paramètre de données, en utilisant le paramètre P et en spécifiant la taille du paramètre de données.
Une commande avec un flux de données de mémoire, en utilisant le paramètre S
function AsString : string;Utilisez cette fonction à l'intérieur de l'événement OnMessage pour obtenir des données de message comme type de chaîne.
function AsInteger : Integer;Utilisez cette fonction à l'intérieur de l'événement OnMessage pour obtenir des données de message comme type entier.
procedure AsStream (Stm: TStream);Utilisez cette procédure à l'intérieur de l'événement OnMessage pour obtenir des données de message comme type TSTREAM (l'objet doit être créé avant d'appeler cette méthode).
function GetResult : Integer; Vous pouvez utiliser cette fonction juste après l'appel Send Method pour obtenir le code de résultat du message reçu par l'application de destination. Vous pouvez définir ce résultat dans l'événement OnMessage sur l'application de destination. Veuillez consulter la description de l'événement OnMessage.
procedure OnMessage (Sender: TObject; From: HWND; ID: Word; P: Pointer; Size: Cardinal; var Result: Integer); Cette méthode se produira dans l'application de destination lorsqu'un message sera reçu. Le paramètre From indique la poignée de la fenêtre source. Le paramètre ID indique le code du message utilisé dans la méthode Send sur l'application source. Le paramètre P a le pointeur des données de message. Le paramètre Size vous permet de connaître la taille des données reçues.
Le paramètre Result vous permet de définir un code de résultat pour retourner à l'application Sender (l'application Sender doit utiliser la fonction GetResult juste après utilisation de la méthode Send pour lire ce code de résultat).
Vous pouvez utiliser les méthodes AsString , AsInteger ou AsStream pour obtenir du contenu de données de message comme type spécifique.
Vous pouvez envoyer une structure d'enregistrement. Pour ce faire, assurez-vous que vous utilisez toujours packed record , car ce type d'enregistrement utilisera une structure de taille fixe.
Pour envoyer un enregistrement, utilisez:
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 ;Pour recevoir ce dossier en utilisant l'événement OnMessage:
var R: TData;
begin
R := TData(P^);
end ;Bien sûr, l'enregistrement emballé sur l'application de destination doit avoir la même structure que l'enregistrement utilisé dans l'application d'expéditeur.
Pour envoyer un double type:
var D: Double;
begin
DzTalkApp.Send( 1 , @D, SizeOf(D));
end ;Pour recevoir un double type (événement OnMessage):
var D: Double;
begin
D := Double(P^);
end ;