الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فائدة إنشاء أدوات التحكم آليا في مشاريعنا

بدأه DreamNet في 18 مايو 2008 · 2 رد · 992 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

قد يجد البعض متاعب كثيرة عند استعمال أداوت تحكم ما كـActivex في اختلاف الاصدارات الموجودة من جهاز إلى آخر وكمثال : فانه عند استعمال الأداة Shockwave المخصصة لقراءة ملفات الفلاش فان عنصر التحكم هذا لن يكون مربوط بملف ثابت لتعدد اصدرات الملف من جهاز إلى آخر ولذلك نجد الكثير يقوم بارفاق الأداة التي أنشأ معها المشروع لكي تعمل بدون مشاكل

لكن هناك حل يمكننا به تجاوز هذه المشكلة بجعل أداة التحكم المنشئة مستقلة عن الأكتف أكس كملف

لكن قبل التطرق للتفاصيل دعونا نلقي نظرة إلى كيفية انشاء أداوات تحكم بشكل آلي أثناء التنفيذ

كمثال أولي نضيف زر إلى الفورم ونحدد حدث الضغط عليه

Dim WithEvents cmdMyCommand As VB.CommandButton

عرفنا كائن زر مع تحميل جميع أحداث الزر

يعني سنجد الكائن المعرف قد أصبح له نفس الأحداث للزر

Set cmdMyCommand = Controls.Add("VB.CommandButton", "ctlCommand1", Form1)
cmdMyCommand.Top = 50
cmdMyCommand.Left = 50
cmdMyCommand.Visible = True

لآن قمنا بتحديد خصائص الكائن المنشئ والذي يمثل الزر وعند التشغيل سيتم اضافة هذا الزر على الفورم

معظم العناصر القياسية لها فئة مسماة بها مثلما رأينا قبل حول كائن CommandButton

يعني بنفس الطريقة فقط مع مراعاة استعمال WithEvents أثناء التعريف كي يتم استدعاء جميع أحداث الكائن المعرف منه

الشئ المهم أيضا هنا هي الفئة VBControlExtender تخص باقي عناصر التحكم الأخرى والتعامل معها هنا يختلف في تسيير الأحداث لانها تكون أحداث قياسية ويمكننا أن نعرف أي عنصر باستخدام هذه الفئة ونتعامل معه ككائن لذلك كل الأحداث تتم مراقبتها في الحدث ObjectEvent

كمثال نريد ادراج أداة الفلاش إلى الفورم بدون اضافتها في الأداوت

نعرف كائن من الفئة VBControlExtender

Dim WithEvents Ctrl1 As VBControlExtender

ثم نقوم بالاضافة الآلية بالكود

Set Ctrl1 = Form1.Controls.Add("ShockwaveFlash.ShockwaveFlash", "flashplayer")
Ctrl1.Visible = True
Ctrl1.Width = 4935
Ctrl1.Height = 4575
Ctrl1.Left = 120
Ctrl1.Top = 120

لكن لحد الآن لن نستطيع استغلال أداة الفلاش المنشئة آليا لان الكائن المنشئ لا يتيح لنا الوصول إلى خاصية تشغيل ملفات الفلاش وهذه الخاصية مهمة جدا

أين الحل إذا ؟؟ وكيف نصل إلى الخاصية LoadMovie ؟

بعد أن استطعنا إنشاء الأداة باستعمال الكائن المسجل في النظام والمخصص للأداة ShockwaveFlash بقي لنا كيفية استخدام الإجراء المتعلق بتحميل ملف الفلاش

طبعا وهذا أهم شئ

للوصول إلى استخدام الإجراء LoadMovie فعلينا أن نقوم باضافة الأداة من Componments

قد يسأل البعض هنا :

لماذا كل هذا التعب إذا مادمنا سنضيف الأداة ؟؟ :wub:

طبعا الأداة سنضيفها لكن لن نستعملها :D

لكن فقط علينا مراعاة شئ مهم جدا

الفيجوال بيسك عند انشائه للملف التنفيذي فانه يقوم إفتراضيا بازالة المعلومات المتعلقة بالأدوات الغير مستخدمة في البرنامج

قد تضيف مثلا أداة وينسوك عند التصميم لكنك اذا لم تستعملها فانه يقوم بازالة معلوماتها أثناء إنشاء الملف التنفيذي للكود

وهذه الخاصية يمكننا أن نقوم بتعطيلها

post-23361-1211095203_thumb.gif

لاحظ أن الخاصية : Remove information about unused ActiveX Controls مفعلة افتراضيا

نقوم بتعطيلها بعد اضافة أداة الفلاش من الComponments لكن دون ادراجها على الفورم

بهذا فقط يمكننا الوصول إلى الإجراء LoadMovie للكائن الذي سيتم انشاؤه

ومن ناحية أخرى فان الملف التنفيذي المنشئ سيكون مستقلا عن أداة الفلاش الموجودة على الجهاز

يعني قد تكون الاداة موجودة في Flash.ocx أو Flash09b.ocx ...

لكن بهذه الطريقة فانه لا يهمنا ذلك :lol:

بهذا يمكننا أن نستعمل الدالة LoadMovie للأداة المنشئة برمجيا بدون حدوث أي مشكل

بالتوفيق للجميع

تم تعديل هذه المشاركة بواسطة DreamNet في 18 مايو 2008 في 10:24

#2

الطريقه دى جميله جدا

بس فيه حاجه أنا مش فاهمها أنا كده على جهاز العميل مش لازم أرفق أداة الفلاش او أى اداه مستخدمه ولا لازم تكون فيه أداة بس مش مهم الأصدار المستخدم منها

سبحان الله وبحمده سبحان الله العظيم

s.gif

#3

بطبيعة الحال عندما نريد انشاء كائن يمثل الاداة فيجب أن تكون الاداة مسجلة في الريجيستري للوصول إليها بسهولة بغض النظر عن اسم أو مكان تواجد الاداة

إذا الأداة يجب أن تكون موجودة في الجهاز ومسجلة طبعا

وطبعا الفائدة تكمن فيما ذكرته هو استعمال الفئة المسجلة بها الاداة بغض النظر عن اسم ملف الاداة

بالتوفيق للجميع

مواضيع مشابهة