
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)
03.10.2020 (Version 1.3)
27.10.2020 (Version 1.2)
26.10.2020 (Version 1.1)
05/03/2020
03/11/2019
Mit DZTalkApp können Sie Daten zwischen verschiedenen Anwendungen senden. Sie können einfachen Datentypen wie Ganzzahl oder String und sogar komplexe Daten wie ein Datensatz senden.
Unterstützt Delphi xe3..delphi 11
Lassen Sie einen TDZTalkapp in die Quell- und Zielanwendungen fallen.
Sie müssen nur den Fensternamen in der Komponente einstellen, und die Kommunikation wird zwischen den Fenstergrenzen stattfinden.
Legen Sie in der Zielanwendung das OnMessage -Ereignis einfach fest, um Daten zu empfangen und zu lesen.
AutoActivate: Boolean = automatisch das Griff für die geladene Komponente. Dies funktioniert nur, wenn Sie andere Eigenschaften im Design-Zeit-Modus festlegen.
AutoFind: Boolean = Wenn autofind aktiviert ist, findet die Komponente bei jedem Befehl send das Zielfenster.
MyWindowName: String = Geben Sie den Quellgriffsnamen an. Diese Eigenschaft wird nur benötigt, wenn diese App Kommunikation erhält. Andernfalls müssen Sie nur den Zielfensternamen festlegen.
DestWindowName: String = Geben Sie den Zielfensternamen an. Diese Eigenschaft wird nur benötigt, wenn diese App Kommunikation sendet. Andernfalls müssen Sie den Namen des Quellfensters nur festlegen.
Synchronous: Boolean = Wenn diese Eigenschaft aktiviert ist, wird der Ausführungszeiger, wenn Sie einen Befehl an eine andere App senden, erst nach Beenden der Ziel -App OnMessage veröffentlicht. Wenn diese Eigenschaft deaktiviert ist und das Ziel die Nachricht empfängt, wird sofort der Ausführungszeiger in der Quellanwendung veröffentlicht.
Active: Boolean (öffentlich schreibgeschützt) = zeigt an, ob die Komponente aktiviert oder deaktiviert ist (siehe Methoden Enable und Disable ).
ToHandle: HWND (public) = speichert den letzten Zielfensterhandel. Sie können diese Eigenschaft bei Bedarf manuell einstellen. Ich empfehle Ihnen jedoch, stattdessen FindDestWindow -Methode zu verwenden.
procedure Enable ;Ermöglicht das Fensterhandle, Nachrichten zu senden und zu empfangen. Sie müssen den Namen des Fenstergriffs angeben, bevor Sie diese Methode verwenden.
procedure Disable ;Deaktiviert den Fenstergriff.
procedure FindDestWindow ; Finden und setzen Sie das Zielfenster des Zielfensters mit dem in DestWindowName -Eigenschaft definierten Namen. Wenn das Zielfenster nicht gefunden wird, wird ein Fehler unter Verwendung der Klasse EDzTalkAppWndNotFound angesprochen.
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; Verwenden Sie Send -Methoden, um eine Nachricht an die Zielanwendung zu senden. Zum Senden von Nachrichten muss die Komponente aktiviert werden (verwenden Sie die Methode Enable ) und benötigt einen definierten Zielfensternamen (verwenden Sie DestWindowName -Eigenschaft).
Mit den Überlastungsmethoden können Sie senden:
Nur ein Befehl unter Verwendung ID -Parameters
Ein Befehl mit einem Ganzzahlparameter mit N -Parameter
Ein Befehl mit einem String -Parameter unter Verwendung A Parameters
Ein Befehl mit jeder Art von Datenparameter unter Verwendung P -Parameters und Angabe der Größe des Datenparameters.
Ein Befehl mit einem Speicherdatenstrom mit S -Parameter.
function AsString : string;Verwenden Sie diese Funktion im OnMessage -Ereignis, um eine Nachrichtendaten als String -Typ zu erhalten.
function AsInteger : Integer;Verwenden Sie diese Funktion im OnMessage -Ereignis, um eine Nachrichtendaten als ganzzahliger Typ abzurufen.
procedure AsStream (Stm: TStream);Verwenden Sie diese Prozedur im OnMessage -Ereignis, um eine Nachrichtendaten als TStream -Typ zu erhalten (das Objekt muss vor dieser Methode erstellt werden).
function GetResult : Integer; Sie können diese Funktion gleich nach der Anruf Send verwenden, um den Ergebniscode der von der Ziel -App empfangenen Meldung zu erhalten. Sie können dieses Ergebnis in einem OnMessage -Ereignis bei der Zielanwendung festlegen. Bitte beachten Sie die Beschreibung des OnMessage -Ereignisses.
procedure OnMessage (Sender: TObject; From: HWND; ID: Word; P: Pointer; Size: Cardinal; var Result: Integer); Diese Methode erfolgt in der Ziel -App, wenn eine Nachricht empfangen wird. Der From Parameter aus dem Quellfenster angezeigt. Der ID -Parameter gibt den Code der in der Send verwendeten Meldung an der Quell -App an. Der P -Parameter hat den Zeiger der Nachrichtendaten. Mit dem Size können Sie die Größe der empfangenen Daten kennen.
Mit dem Result können Sie einen Ergebniscode festlegen, um zur Absenderanwendung zurückzukehren (die Anwendung von Absender sollte gleich nach der Verwendung Send GetResult zum Lesen dieses Ergebniscodes verwendet werden).
Sie können die Methoden von AsString , AsInteger oder AsStream verwenden, um Nachrichtendateninhalte als spezifischen Typ zu erhalten.
Sie können die Datensatzstruktur senden. Stellen Sie dazu sicher, dass Sie immer packed record verwenden, da diese Art von Datensatz eine Struktur der festen Größen verwendet.
Um einen Datensatz zu senden, verwenden Sie:
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 ;Um diesen Datensatz mit einem OnMessage -Event zu erhalten:
var R: TData;
begin
R := TData(P^);
end ;Natürlich muss der verpackte Datensatz in der Zielanwendung die gleiche Struktur haben wie der in der Absenderanwendung verwendete Datensatz.
So senden Sie einen doppelten Typ:
var D: Double;
begin
DzTalkApp.Send( 1 , @D, SizeOf(D));
end ;Um einen Doppelart zu erhalten (OnMessage -Event):
var D: Double;
begin
D := Double(P^);
end ;