
09/12/2021 (الإصدار 1.9)
03/13/2021 (الإصدار 1.8)
02/01/2021 (الإصدار 1.7)
12/18/2020 (الإصدار 1.6)
11/28/2020 (الإصدار 1.5)
11/01/2020 (الإصدار 1.4)
10/31/2020 (الإصدار 1.3)
10/27/2020 (الإصدار 1.2)
10/26/2020 (الإصدار 1.1)
05/03/2020
03/11/2019
يتيح لك DzTalkApp إرسال بيانات بين التطبيقات المتميزة. يمكنك إرسال نوع بيانات بسيط مثل عدد صحيح أو سلسلة ، وحتى البيانات المعقدة ، مثل السجل.
يدعم Delphi Xe3..delphi 11
إسقاط tdztalkapp في تطبيقات المصدر والوجهة.
تحتاج فقط إلى تعيين اسم النافذة في المكون ، وسيحدث الاتصال بين مقابض النوافذ.
في تطبيق الوجهة ، فقط قم بتعيين حدث OnMessage لتلقي البيانات وقراءتها.
AutoActivate: Boolean = تلقائي تلقائي المقبض على المكون المحملة. سيعمل هذا فقط عند تعيين خصائص أخرى في وضع وقت التصميم.
AutoFind: Boolean = عند تمكين AutoFind ، في كل أمر إرسال ، سيجد المكون مقبض نافذة الوجهة.
MyWindowName: String = حدد اسم مقبض المصدر. هناك حاجة إلى هذه الخاصية فقط إذا كان هذا التطبيق سيتلقى الاتصال. وإلا فإنك تحتاج فقط إلى تعيين اسم نافذة الوجهة.
DestWindowName: String = حدد اسم نافذة الوجهة. هناك حاجة إلى هذه الخاصية فقط إذا أرسل هذا التطبيق الاتصال ، وإلا فإنك تحتاج فقط إلى تعيين اسم مقبض نافذة المصدر.
Synchronous: Boolean = إذا تم تمكين هذه الخاصية ، عند إرسال أمر إلى تطبيق آخر ، سيتم إصدار مؤشر التنفيذ فقط بعد انتهاء طريقة OnMessage الوجهة. إذا تم تعطيل هذه الخاصية ، عندما تتلقى الوجهة الرسالة ، يتم إصدار مؤشر التنفيذ على الفور في تطبيق المصدر.
Active: Boolean (القراءة العامة فقط) = يشير إلى ما إذا كان المكون قد تم تمكينه أو تعطيله (انظر Enable الأساليب Disable ).
ToHandle: HWND (عام) = يخزن مقبض نافذة الوجهة الأخيرة. يمكنك تعيين هذه الخاصية يدويًا إذا لزم الأمر ، لكنني أوصيك باستخدام طريقة FindDestWindow بدلاً من ذلك.
procedure Enable ;يمكّن مقبض النافذة من إرسال واستقبال الرسائل. تحتاج إلى تحديد اسم مقبض النافذة قبل استخدام هذه الطريقة.
procedure Disable ;يعطل مقبض النافذة.
procedure FindDestWindow ; ابحث عن مقبض نافذة الوجهة وتعيينها بالاسم المحدد في خاصية DestWindowName . إذا لم يتم العثور على نافذة الوجهة ، فسيتم رفع خطأ ، باستخدام Class 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 في التطبيق المصدر. تحتوي المعلمة 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 ;