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

مجموعة دروس فى انشاء Active x control

مغلق
بدأه حريف برمجة في 15 يونيو 2007 · 15 رد · 9,551 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

w6w200504131328016486ab59b.gif

قبل كل شئ لا اريد اى مشاركة فى هذا الموضوع مثل عبارات ( مشكور _ يسلموا _ ما قصرت _ يعطيك العافية ) اما بالنسبة للمناقشة حول هذا الموضوع ارجوا الا يتم الرد حتى انتهى من وضع الدروس حتى يكون الموضوع متكامل وذو تسلسل ثابت

هذا الموضوع تم شرحه من قبل على يد الاخ " عبد الله فتحى " ولكنه لم يكتمل وكنت اريد ان اكمل عليه لكنى فضلت ان ابدا من الاول حتى لا انسى شيئا

ملحوظة : هذه الدروس موجهة للمتوسط والمحترف فى الفيجوال بيسيك اما المبتدا فيجب ان يقرا اولا لا هذه الدروس ستكون صعبة بالنسبة له

فالنبدا ان شاء الله

مقدمة Introduction

من تعامل قديما مع لغة مثل Quick basic او C فسيعرف مدى المعاناه فى برمجة النوافذ والتى وجدها ان ذاك فلكى تقوم ببناء تطبيق له واجهة رسومية يعمل مثلا على ال Dos كان يجب عليك ان تقوم برسمها من الصفر اى ان كل ما امامك هو شاشة سوداء تقوم انت بتلوينها وطباعة النصوص عليها وهكذا حتى تنتج معك النافذة او مربع الحوار الذى تواجه به المستخدم

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

اذا ما هى الاكتيف اكس او ال Active control

هى تجميع مجموعة من الدوا والفصائل( الفصائل هى مجموعة من الدوال والبيانات مجمعة فى عنصر واحد) تمكن المبرمج من الوصول اليها لاداء وظيفة معينه فى برنامجه دون الاضطرار الى اعادة كتابة كل تلك الدوال فى كل مرة

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

وبذاك يتضح لنا الفرق بين المبرمج والمصمم فمصمم الاداه هو من يحدد طريقة استخدامها بالنسبة للمبرمج اذا هو اعلى منه كفائة وخبرة

لمحة تاريخية عن ال Active x

بدات Microsoft فى تطوير الاكتف كنترول منذ تصميمها لمفهو الربط والدمج OLE وصدور الاصدار الاول منه عام 1991 OLE 1.0 كان يعنى وجود وثيقة مع احتوائها على اشياء اخرى مثل النصوص والصور والرسومات البيانية وفى نفس العام قدمت الاصدار الثانى OLE 2.0 مع تقديم بعض التحسينات مثل مثل السحب والافلات والتعامل ع الحافظة CLIP Board والربط وما الى اخره

ويمكن تقسيم البرامج بالنسبة لاستخدام الاكتيف اكس

1- Container

وهو برنامج يسمح بالحتواء كائنات بداخله مثل برامج الاوفي ( وورد اكسل )

2- Mini Server

وهو برنامج لا يعمل بشكل من فصل وليعمل يجب اضافته الى برامج اخرى كمساعد الوورد

3- Server

وهو برنامج يسمح بتصدير كائن منه ويعمل بشكل منفصل

3- Container & server

وهو برنامج يستقبل عناصر من برامج اخرى فيسمى Container وايضا يصدر كائنات لبرامج اخرى فيسمى Server مثل برنامج 3D studio max

يمكن تصميم برامج الاكتيف اكس باستخدام الفيجوال بيسيك بدا من الاصدار الخامس واقواهم السى ++

لكى تقوم بتصميم اداه اكتيف اكس قم بفتح مشروع جديد واختر Active x control بدلا من Standard Exe وستظهر لك نموزج ياخذ شكل الفورم Border style = fixed single وهذه الواجهة هى التى ستظهر فى البرنامج الذى سيحتويها ولكى تقوم بترجمة المشروع الى OCX اختر من قائمة File make project.ocx وتحدد مكان الاداه وبعد ذلك يمك استدعائها بالطريقة المعتادة من components واختر browse ثم حدد مكان الاداه الذى حفظتها به ثم اضغط على موافق لتظهر لك على شريط الادوات ويمكن رسمها على النموزج

ولكن يجب ان تعرف قبل البدئ معنا فى التصميم كيفية التعامل مع الفصائل Classes ودوال الاى بى اى حتى لا تجد صعوبة فى الشرح w6w200504111357126e4cbdd8c.gif

وللحديث بقية والسلام عليكم ورحمة الله وبركاته w6w2005041313550868f6af025.gif

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#2

يلا يا مان الي الامام واهلاً بيك بعد الافراج وكفارة

:lol: :lol: :lol: :lol:

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#4

بالتوفيق إن شاء الله

#5

Active x controls

اهلا بكم مرة اخرى

انا سف على تاخرى لكن هذا ليس بيدى حيث اننى مشغول بمشروع التخرج

افتح مشروع جديد فى الفيجوال بيسيك وبدل من ان تختار Standard exe اختر Active x controls

ستفتح لك نافذة مصمم ادوات اكتيف اكس وكما قلنا مسبقا فهو نموزج Border style = fixed single المهم سنحاول قدر الامكان اليو نصمم اداه بسيطة ومفيدة فى نفس الوقت لنتعرف على المبادئ الاساسية لتصميم ادوات اكتيف اكس

قم بادراج مربع نص على نموزج اداه التحكم واجعل خاصية locked = True حتى يتم منع الكتابة بداخلها

وامسح ما داخله عن طريق خاصية Text حتى يكون فارغ

نستنج الان اننا يمكننا ان نصمم اداه تحكم مبنية على اداه تحكم اخرى

حسنا قم بضغط Right click على نافذة صندوق الادوات واختر Components او اضغط على Ctrl + T ليتم فتح نافزة التى ستعرض الادوات المخزنة عندك فى System 32 directory مجلد ال sysem32

اختر Microsoft windows common controls 2 6.0 (sp4) ثم اضغط على ok ستجد مجموعة الادوات تلك نزلت فى ال Tool box اختر updown ليم اضافتها الى الفورم

حاول ان تنسق الشكل بحيث ان تكون اداه UpDown على يمين مربع النص

وقم باضافة الشفرة التالية للمحافظة على شكل الاداه كلما تغريرت

  1.  
  2. Private Sub UserControl_Resize()
  3. Text1.Move 0, 0, ScaleWidth - 250, ScaleHeight
  4. UpDown1.Move Text1.Width, 0, 200, ScaleHeight
  5. End Sub
  6.  

لاختبار الاداه قم باضافة مشروع جديد اليها

من قائمة File اختر Add project واختر Standard exe قم باغلاق نافذة تصميم الاداه لتجدها قد تنشطت فى مربع الادوات قم بادراجها على الفورم واعمل Resize لها ستجدها بشكل مقبول

لكن الاداه لا تفعل شيئا

حسنا

فى حدث DownClick اكتب الشفرة التالية

  1. [font="Times New Roman"]Private Sub UpDown1_DownClick()
  2. Text1.Text = Val(Text1.Text) - 1
  3. [/code][/font]
  4.  

وفى حدث UpClick اكتب الاتى

  1.  
  2. [font="Times New Roman"][size="3"][font="Verdana"][size="2"]Private Sub UpDown1_UpClick()
  3. Text1.Text = Val(Text1.Text) + 1
  4. End Sub[/code][/size][/font][/size][/font]
  5.  
  6.  

وهذا لزيادة او نقصان ما بداخل مربع النص بمقدار واحد

لا تنسى ان تضع قيمة رقمية فى التكست حتى لا يعطيك Run time error

طبعا هذة الاداه بسيطة جدا وكان شرحى ممل للغاية لكنى كنت حاول اراعى المبتدا فى الشرح

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

ان شاء الله سنتعلم المرة القادمة احداث الاداه والفرق بين توقيت تنفيز كل منها وفيما تستخدم

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

lesson2.zip

تم تعديل هذه المشاركة بواسطة حريف برمجة في 2 يوليو 2008 في 20:32

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#6

مشكووووووووووووووووووووووووور جدا جدا جدا جدا جدا

نحن ننتظر هذه الدروس منذ مدة :) بس اريد اسالك اذا اردت صنع button كيف اضيف خواص لها مثل name و المبرمج

اقصد المستخدم اذا يريد يستخدم الاداة يكتب

button1.

عند الضغط على . تظهر له قائمة فيها خواص لذلك اريد شرح هذا

startingprogremmer.jpg
#7
اقتباس
Text1.Move 0, 0, ScaleWidth - 250, ScaleHeight

UpDown1.Move Text1.Width, 0, 200, ScaleHeight

ممكن تشرح شرح ممل

startingprogremmer.jpg
#8

Activex control تابع

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

بسم الله الرحمن الرحيم

المرة السابقة صممنا اداه لا تفعل شيئا سوى انها تقوم بذيادة او نقصان قيمة معينة ولكننا لم نكن نعرف القيمة التى بداخلها لذلك كان هناك شيءا مهما جدا وهو الخصائص

كيف تضيف خصائص الى اداتك

الخاصية هى عبارة عن 2 برنامج فرعى يقوم باخذ قيمة او اعطائها

ما هذا الكلام الغريب لم افهم شيئا :blink:

مش مهم ان شاء الله واحنا بنكمل الدرس هتفهم

سناخذ المثال السابق لكى نضيف خاصية اليه وهى خاصية Value

قف فى مكان فارغ فى محرر الكود عندك Code editor وكانك ستكتب كود جديد

لكى نضيف خاصية الى الاداه فى قائمة Tools اختر Add procedure وهى اضافة اجراء وسيظهر لك مربع حوارى لتحديد نوع الاجراء المراد اضافته اختر property وهى اجراء من نوع خاصية مع مراعاة اختيار public حتى تكون مرئية لباقى الكائنات التى ستستخدم فيها اكتب فى خانة Name اسم الاجراء وفى حالتنا Value

بعد ذلك اضغط على ok ليتم اضافة اثنين من الاجرائات

1-

Public Property Get Value() As Variant

وفى ذلك الاجراء يتم اخذ قيمة الخاصية من اداتك اى ان ذلك الاجراء لن ينفذ الا قام المبرمج باستدعاء تلك الخاصية من اداتك

مثلا ان يقوم مستخدم اداتك بكتابة التالى

Text1.text = MyTool.value

بذلك سيتم استدعاء الاجراء السابق لاستدعاء قيمة الاداه

ولكن قبل كل شئ قم بتعديل الاجراء ليكون

 

Public Property Get Value() As Long

وقمنا بتعديل Varient لتكون Long وهى ما تناسب القيمة المرتجعة من الخاصية

قم بكتابة التالى داخل هذا الاجراء

 

 Public Property Get Value() As Long

	Value = CLng(Text1.Text)

End Property

وبذلك اذا طلب المبرمج قيمة من اداتك سينفذ هذا الاجراء لياخذ ما بداخل ال Text box المستخدم فى تصميم الاداه

حسنا الاجراء الاخر Let

Public Property Let Value(ByVal vNewValue As Variant)

وفى هذا الاجراء يقوم المبرمج الذى يستخدم اداتك بوضع قيمة بداخلها

MyTool.Value = 5

وعند اذ سينفذ هذا الاجراء لوضع قيمة بداخل اداتك وعندها قم بكتابة التالى

 

Public Property Let Value(ByVal vNewValue As Long)

	Text1.Text = vNewValue

End Property

حيث ان القيمة الجديدة سيتم تمريرها فى التابع Vnewvalue ولكن قبلها قم بتغيير نوعه من Varient الى Long ليتناسب مع القيمة الممررة

لكن اين سيتم تخزين القيمة التى تاخذها الاداه

هذا ان شاء الله سنناقشة فى المرة القادمة

lesson3__Add_properties.zip

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#9

اخ مبرمج مبتدا

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

تقوم بضبط المقاييس الازمة لتحجيم الادوات على النموزج

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#10
Public Property Get Value() As Long

ارجو شرح مفصل

اقتباس
في الكود السابق لم اقصد شرح ما يفعله الكود اريد شرح الكود نفسه :)

مشكوووووور على الدرس الثاني :) معني الان ما بعرف اطبق :) الا اذا صرت اعرف معنى الاكواد

startingprogremmer.jpg
#11

هل يوجد اجراء اخر غير get و let ??

startingprogremmer.jpg
#12

وماذا يفعلان ؟؟

اقصد get و let و اي اجراء اخر اذا وجد ؟؟

startingprogremmer.jpg
#13
اقتباس
هل يوجد اجراء اخر غير get و let

ماذا تقصد

وضح اكثر الاجرائات كثيرة ولكن هؤلاء يخصو ال PROPERTY

لا تقلق ساعيد شرح الاجرائين السابقين فى المرة القادمة

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#14

يعني يوجد الكثير من الاجراءات :)

انا اريد شرح الدرس بتفصيل اكثر اذا سمحت

startingprogremmer.jpg
#15

نرجو شرح بالتفصيل مع عمل ادوات نضيف لها خصائص أخري

ونجمع مثلا عدة أدوات معا لانتاج أداة جديدة تشمل العديد من الخصائص

#16

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

سمعت اسئلة احد الاخوة هنا حول هذا الموضوع لذلك

ساقوم باكمال الموضوع مرة اخرى ان شاء الله وسيكون كوسيلة ترفيه لى لانى بدات ان اتعقد نفسيا من كثرة العمل بمشروعى :D

ساراجع الدروس السابقة لاعرف كيف استكمل بعد هذا الانقطاع لذلك

اريد من الاخوة الخبراء فى الفى بى ممن يستطيع الشرح مع ان يراسلنى على الخاص لنقوم بالتنسيق معا لاعداد الدروس لانى اخشى لا استطيع الاستكمال والانتظام وحدى

ساقوم باغلاق الموضوع حاليا لانى لا اريد ردود المشكور حتى اجد احد المشرفون لرفع الدروس فوق الردود السابقة واذا اردتم فتح موضوع اخر للمناقشة ليس عندى مانع

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

تم تعديل هذه المشاركة بواسطة حريف برمجة في 27 يوليو 2008 في 22:37

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

هذا الموضوع مغلق.

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