Dynamic Data Exchange بين التطبيقات في دلفي (عرض فلاش)
#1
السلام عليكم ورحمة الله

DDE اختصار Dynamic Data Exchange بديل آخر عن COM و Automation وتقنية للحوار بين تطبيقات الخادم (Server Application) وفق المنهج عميل/خادم

معظم البرامج الشهيرة التي نستخدمها يوميا (المتصفحات، البرامج المكتبية...) تتوفر على خدمات DDE تسمح بالاتصال معها إرسالا واستقبالا للبيانات: IE، MsOffice، Explorer...

يوفر دلفي مجموعة من المكونات (المنسية!) للتعامل مع DDE موجودة في التبويب System
كود :
TDdeClientConv;TDdeClientItem;TDdeServerItem

نأخذ مثالين لتوضيح الفكرة
1- المثال الأول: مثال بسيط للاستعلام عن الصفحة المفتوحة في IE
- ضع مكون DdeClientConv1 (العميل) على النموذج...
- افتح المتصفح IE على أي صفحة (ضروري لتشغيل الخدمة)
- الآن اضبط الخصائص:
-- DDeService على IExplore (اسم الخادم)
-- وDdeTopic على WWW_GetWindowInfo (الموضوع الذي تود الاستعلام عنه)
-- وServiceApplication على IExplore.exe (اسم التطبيق -اختياري-)
-- اترك الخيار ConnectMode على ddeAutomatic ...
- ضع زرا واكتب عند الضغط عليه:
PHP كود :
Caption := DdeClientConv1.RequestData('0xFFFFFFFF') 
نفذ التطبيق ولاحظ عنوان النموذج

يمكن استخدام مكون TDdeClientItem وربطه مع TDdeClientConv من DdeConv ثم نستقبل العائدات من TDdeClientItem بمثل هذا:
PHP كود :
Caption :=  DdeClientItem1.DdeConv.RequestData('0xFFFFFFFF'); 

إذا لم ينجح معك ذلك أعد القيام به بشكل ديناميكي مستخدما التابع SetLink هكذا:
PHP كود :
with DdeClientConv1 do
  
begin
    SetLink
('IExplore','WWW_GetWindowInfo');
    
Caption:= RequestData('0xFFFFFFFF');
  
end; 

2-المثال الثاني فتح متصفح Windows للبحث عن الملفات في مسار معين:
- ضع نفس المكون واضبط الخادم هذه المرة:
-- DDeService على Folders (خادم لمتصفح Windows)
-- وDdeTopic على AppProperties
-- وServiceApplication على explorer.exe
- هذه المرة نقوم بتنفيذ Macro مباشرة بهذا الشكل:
PHP كود :
DdeClientConv1.ExecuteMacro('[FindFolder(, c:\windows\system32)]', False); 
للبحث عن الملفات في المسار: c:\windows\system32

هذا مثال بسيط لتوضيح فكرة DDE ولك أن تبحث كيفية الاتصال بالبرامج الأخرى Smile

ملاحظة:
تنصح Microsoft باستخدام Automation بدلا عن DDE إن أمكن للاتصال بالبرامج Word, Excel ... لما تقدمة من دعم أفضل وخدمات إضافية.
-----

تم إعداد مثال مرفق السورس.
وعرض فلاش لطريقة إعداد تطبيقين بدلفي وربطها بتقنية DDE. الرابط:
http://www.mediafire.com/?vgqr84elldqsrej

بالتوفيق.


الملفات المرفقة
.rar   DDEServerClientConversation_src.rar (الحجم : 2.23 ك ب / التحميلات : 105)
الرد
#2
السلام عليكم

والله زمان ..

فعلا نسينا هذه التقنية. (على حسب علمي) هذه أولى تقنيات تبادل البيانات بين التطبيقات قدمتها ميكروسفت في ويندوز. قبل أن تضيع في زحام OLE ثم COM وتوابعها.

DDE من التقنيات البسيطة و سهلة الاستخدام، ياليت أخي kachwahed أو أحد الأخوة يقدم لنا أمثلة عن كيفية تبادل البيانات بين تطبيقين مبرمجين بدلفي.


شكرا على المشاركة الجميلة
الرد
#3
إقتباس :ياليت أخي kachwahed أو أحد الأخوة يقدم لنا أمثلة عن كيفية تبادل البيانات بين تطبيقين مبرمجين بدلفي.
تحت أمرك Smile
تم إضافة شرح فلاش وسورس مثال لربط تطبيقين بدلفي.
الرد
#4
السلام عليكم

شكرا لك أخي kachwahed . على الاستجابة السوبر سريعة

شرح فلاشي خفيف لكنه: To the point

الكود أنيق و احترافي .. اشتغل معي بدلفي 6

يبقى الآن، ... الدعاء
اللهم وفقه لما تحبه وترضاه، وارزقه من الطيبات واجعل له في كل خطوة سعة ورحمة.

------
خاطر: ماهي الأفكار العملية التي يمكن لنا تنفيذها في برامجنا بالاستفادة من هذه التقنية؟
الرد
#5
إقتباس :اللهم وفقه لما تحبه وترضاه، وارزقه من الطيبات واجعل له في كل خطوة سعة ورحمة.
اللهم وفقنا لما تحبه وترضاه، وارزقنا من الطيبات واجعل لنا في كل خطوة سعة ورحمة... آمين

إقتباس :خاطر: ماهي الأفكار العملية التي يمكن لنا تنفيذها في برامجنا بالاستفادة من هذه التقنية؟
تصدق؟ هناك من يستخدمه لقواعد البيانات bde خاصة Smile
الرد
#6
رائع جداً أخي كاش واحد ,,,
الله يوفقك لكل ما يحبه و يرضاه
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم