
12.09.2021 (версия 1.9)
13.03.2021 (версия 1.8)
01.02.2021 (версия 1.7)
18.12.2020 (версия 1.6)
28.11.2020 (версия 1.5)
01.11.2020 (версия 1.4)
31.10.2020 (версия 1.3)
27.10.2020 (версия 1.2)
26.10.2020 (версия 1.1)
05/03/2020
03/11/2019
DzTalkApp позволяет отправлять данные между различными приложениями. Вы можете отправлять простой тип данных, такие как Integer или String, и даже сложные данные, например, запись.
Поддерживает Delphi XE3..Delphi 11
Отбросьте tdztalkapp в исходных и назначенных приложениях.
Вам просто нужно установить имя окна в компонент, и связь между ручками окон будет происходить.
В приложении назначения просто установите событие OnMessage для получения и чтения данных.
AutoActivate: Boolean = Auto-ensable ручка на загруженной компоненте. Это будет работать только тогда, когда вы устанавливаете другие свойства в режиме времени дизайна.
AutoFind: Boolean = Когда автофинд включен, в каждой команде отправки компонент найдет ручку окна назначения.
MyWindowName: String = укажите имя ручки исходного источника. Это свойство необходимо только в том случае, если это приложение получит связь. В противном случае вам нужно только установить имя окна назначения.
DestWindowName: String = укажите имя окна назначения. Это свойство необходимо только в том случае, если это приложение отправит общение, иначе вам нужно только установить имя ручки исходного окна.
Synchronous: Boolean = Если это свойство включено, когда вы отправляете команду в другое приложение, указатель выполнения будет выпущен только после того, как метод приложения назначения OnMessage . Если это свойство отключено, когда пункт назначения получает сообщение, немедленно указатель выполнения выпускается в исходном приложении.
Active: Boolean (Public anyly) = Указывает, включен ли компонент или отключен (см. Enable и Disable методов).
ToHandle: HWND (public) = хранит последнюю ручку окна назначения. Вы можете установить это свойство вручную при необходимости, но я рекомендую вам использовать метод FindDestWindow .
procedure Enable ;Включает ручку с окном для отправки и получения сообщений. Вам необходимо указать имя ручки оконного тока, прежде чем использовать этот метод.
procedure Disable ;Отключает ручку окон.
procedure FindDestWindow ; Найдите и установите ручку окна назначения под названием, определенным в свойстве DestWindowName . Если окно назначения не найдено, возникает ошибка, используя класс 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; Используйте методы отправки , чтобы отправить сообщение в приложение для назначения. Для отправки сообщений компонент должен быть включен (используйте метод Enable ) и требует определенного имени окна назначения (используйте свойство DestWindowName ).
Методы перегрузки позволяют отправлять:
Только команда, используя параметр ID
Команда с целочисленным параметром, используя параметр N
Команда с параметром строки, используя A
Команда с любым видом параметра данных, используя параметр P и указание размера параметра данных.
Команда с потоком данных памяти, используя параметр S
function AsString : string;Используйте эту функцию внутри события OnMessage, чтобы получить данные сообщения в качестве типа строки.
function AsInteger : Integer;Используйте эту функцию внутри события OnMessage, чтобы получить данные сообщения в качестве целочисленного типа.
procedure AsStream (Stm: TStream);Используйте эту процедуру внутри события OnMessage, чтобы получить данные сообщения в качестве типа TSTREAM (объект должен быть создан перед вызовом этого метода).
function GetResult : Integer; Вы можете использовать эту функцию сразу после метода Send вызова, чтобы получить код результата сообщения, полученного приложением назначения. Вы можете установить этот результат в событии OnMessage в приложении назначения. См. Описание события OnMessage.
procedure OnMessage (Sender: TObject; From: HWND; ID: Word; P: Pointer; Size: Cardinal; var Result: Integer); Этот метод будет происходить в приложении назначения, когда будет получено сообщение. From указывает ручку окна источника. Параметр ID указывает код сообщения, используемого в методе Send в приложении Source. Параметр P имеет указатель данных сообщения. Параметр Size позволяет узнать размер полученных данных.
Параметр Result позволяет установить код результата для возврата в приложение отправителя (приложение отправителя должно использовать функцию GetResult сразу после использования метода Send для прочтения этого кода результата).
Вы можете использовать методы AsString , AsInteger или AsStream чтобы получить содержание данных сообщений в качестве конкретного типа.
Вы можете отправить структуру записи. Для этого убедитесь, что вы всегда используете packed record , потому что этот вид записей будет использовать структуру фиксированного размера.
Чтобы отправить запись, используйте:
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 ;Чтобы получить эту запись, используя событие OnMessage:
var R: TData;
begin
R := TData(P^);
end ;Конечно, упакованная запись в приложении назначения должна иметь ту же структуру, что и запись, используемая в приложении отправителя.
Чтобы отправить двойной тип:
var D: Double;
begin
DzTalkApp.Send( 1 , @D, SizeOf(D));
end ;Чтобы получить двойной тип (событие OnMessage):
var D: Double;
begin
D := Double(P^);
end ;