
12/09/2021 (versión 1.9)
13/03/2021 (Versión 1.8)
01/02/2021 (versión 1.7)
18/12/2020 (versión 1.6)
28/11/2020 (versión 1.5)
11/01/2020 (versión 1.4)
31/10/2020 (versión 1.3)
27/10/2020 (versión 1.2)
26/10/2020 (versión 1.1)
05/03/2020
11/03/2019
DztalkApp le permite enviar datos entre aplicaciones distintas. Puede enviar un tipo de datos simple como entero o cadena, e incluso datos complejos, como un registro.
Admite Delphi Xe3..Delphi 11
Deje caer un TDZTalkApp en las aplicaciones de origen y destino.
Solo necesita configurar el nombre de la ventana en el componente, y la comunicación se producirá entre los manijas de la ventana.
En la aplicación de destino, simplemente configure el evento OnMessage para recibir y leer datos.
AutoActivate: Boolean = Auto-Enable el mango en el componente cargado. Esto solo funcionará cuando establezca otras propiedades en el modo de tiempo de diseño.
AutoFind: Boolean = Cuando AutoFind está habilitado, en cada comando Enviar, el componente encontrará el mango de la ventana de destino.
MyWindowName: String = especificar el nombre del identificador de origen. Esta propiedad solo es necesaria si esta aplicación recibirá comunicación. De lo contrario, solo necesita establecer el nombre de la ventana de destino.
DestWindowName: String = especificar el nombre de la ventana de destino. Esta propiedad solo es necesaria si esta aplicación envía comunicación, de lo contrario solo necesita establecer el nombre del mango de la ventana de origen.
Synchronous: Boolean = Si esta propiedad está habilitada, cuando envía un comando a otra aplicación, el puntero de ejecución se lanzará solo después de que finalice el método de la aplicación OnMessage destino. Si esta propiedad está deshabilitada, cuando el destino recibe el mensaje, inmediatamente el puntero de ejecución se libera en la aplicación fuente.
Active: Boolean (Public Readly) = indica si el componente está habilitado o deshabilitado (consulte los métodos Enable y Disable ).
ToHandle: HWND (public) = almacena el último mango de la ventana de destino. Puede configurar esta propiedad manualmente si es necesario, pero le recomiendo que use el método FindDestWindow .
procedure Enable ;Habilita el mango de la ventana para enviar y recibir mensajes. Debe especificar el nombre del mango de la ventana antes de usar este método.
procedure Disable ;Desactiva el mango de la ventana.
procedure FindDestWindow ; Busque y establezca el mango de la ventana de destino por el nombre definido en la propiedad DestWindowName . Si no se encuentra la ventana de destino, se plantea un error, utilizando la clase 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 envío para enviar un mensaje a la aplicación de destino. Para enviar mensajes, el componente debe estar habilitado (utilizar el método Enable ) y necesita un nombre de ventana de destino definido (use la propiedad DestWindowName ).
Los métodos de sobrecarga le permiten enviar:
Solo un comando, usando el parámetro ID
Un comando con un parámetro entero, usando N parámetro
Un comando con un parámetro de cadena, usando A parámetro
Un comando con cualquier tipo de parámetro de datos, utilizando el parámetro P y especificando el tamaño del parámetro de datos.
Un comando con un flujo de datos de memoria, utilizando el parámetro S
function AsString : string;Use esta función dentro del evento OnMessage para obtener los datos de un mensaje como tipo de cadena.
function AsInteger : Integer;Use esta función dentro del evento OnMessage para obtener los datos de un mensaje como tipo entero.
procedure AsStream (Stm: TStream);Use este procedimiento dentro del evento OnMessage para obtener los datos de un mensaje como tipo tstream (el objeto debe crearse antes de llamar a este método).
function GetResult : Integer; Puede usar esta función justo después del método Send de llamadas para obtener el código de resultado del mensaje recibido por la aplicación de destino. Puede establecer este resultado en el evento OnMessage en la aplicación de destino. Consulte la descripción del evento OnMessage.
procedure OnMessage (Sender: TObject; From: HWND; ID: Word; P: Pointer; Size: Cardinal; var Result: Integer); Este método ocurrirá en la aplicación de destino cuando se reciba un mensaje. El parámetro From indica el mango de la ventana de origen. El parámetro ID indica el código del mensaje utilizado en el método Send en la aplicación fuente. El parámetro P tiene el puntero de los datos del mensaje. El parámetro Size le permite conocer el tamaño de los datos recibidos.
El parámetro Result le permite establecer un código de resultado para volver a la aplicación del remitente (la aplicación del remitente debe usar la función GetResult justo después de usar el método Send para leer este código de resultados).
Puede usar los métodos AsString , AsInteger o AsStream para obtener el contenido de datos de mensajes como tipo específico.
Puede enviar una estructura de registro. Para hacer esto, asegúrese de que siempre esté utilizando packed record , porque este tipo de registro utilizará una estructura de tamaño fijo.
Para enviar un 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 recibir este registro usando el evento OnMessage:
var R: TData;
begin
R := TData(P^);
end ;Por supuesto, el registro empaquetado en la aplicación de destino debe tener la misma estructura que el registro utilizado en la aplicación del remitente.
Para enviar un tipo doble:
var D: Double;
begin
DzTalkApp.Send( 1 , @D, SizeOf(D));
end ;Para recibir un tipo doble (evento OnMessage):
var D: Double;
begin
D := Double(P^);
end ;