منتديات احباب عرب  

العودة   منتديات احباب عرب > القسم الرياضي > منتدى الرياضة > امم افريقيا 2019

تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء

بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء لغة البرمجة :فيجوال بيسيك 6 مقدمة:ادوات الاكتيف

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 03-15-2012, 04:34 AM
غربة و شوق غير متواجد حالياً
 
تاريخ التسجيل: Apr 2010
المشاركات: 20,922
معدل تقييم المستوى: 28
غربة و شوق is on a distinguished road
jded تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء

<div>
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء

لغة البرمجة :فيجوال بيسيك 6

مقدمة:ادوات الاكتيف اكس:
طبعا عندما نقوم بتصميم برنامج بلغة فيجوال بيسيك نقوم باضافة ادوات مثل:Label ,Text ,Command Button.......الخ
وهي تكون موجودة ضمن شريط ادوات فيجوال بيسيك سنتعلم في شرحنا هذا كيف نصنع مثل هذه الادوات بأنفسنا لتلبي احتياجات برنامجنا.

الان لنبدأ الشرح العملي :
اولا:افتح مشروع جديد Standard EXE كما في الصورة:
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء
بعد فتح مشروع جديد
قم باضافة مشروع اخر من نوع
ActiveXcontrol
كما في الصورة التالية
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء

الهدف من إنشاء مشروعين هو
1-القدرة على تجربة الأداة أثناء التصميم
2-لتتمكن من تحويل الأداة الى ملف OCX

بعد إضافتك للمشروعين إضغط DblClick على الأداة الموجودة في الصورة التالية
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء
ستظهر لك الأداة كما في الصورة التالية
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء
يمكنك ضبط اسم الأداة من نافذة الخصائص فلنقم بتسميتها فرضاً باسم MyText كما في الصورة التالية
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء
هناك العديد من الخصائص لأداة الUserControl ما يهمنا هي الخصائص التالية:
InvisibleAtRuntime : لرؤية أو عدم رؤية الأداة أثناء زمن التنفيذ
PropertyPages : وهي لاختيار صفحات ال PropertyPages التي سأتحدث عنها لاحقاً
ToolBoxBitmap : وهي للإيقونة التي تظهر في صندوق الأدوات
نعود الآن للأداة ضع أداة Text على أداة الUserControl كما في الصورة التالية
قم بتسميتها بإسم TxT
اضبط الخصائص
MultiLine = True
BorderStyle = 0 – None
Appearance = 0 – Flat
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء

الآن افتح نافذة الكود واكتب الكود التالي حيث يقوم هذا الكود برسم الخطوط الأربعة التي تحيط بمربع النص

كود:
Private Sub DrawLine(LineColor As ColorConstants)
كود:

UserControl.AutoRedraw = True

UserControl.DrawWidth = 1
UserControl.Line (0, 0)-(UserControl.Width, 0), LineColorUserControl.Line (0, 0)-(0, UserControl.Height), LineColor
UserControl.Line (UserControl.Width - 15, 0)-(UserControl.Width - 15, UserControl.Height), LineColor
UserControl.Line (0, UserControl.Height - 15)-(UserControl.Width, UserControl.Height - 15), LineColor

End Sub

حيث ان

كود:
UserControl.AutoRedraw = True
كود:

لتفعيل خاصية اعادة الرسم

و
كود:
UserControl.DrawWidth = 1


كود:

لسمك الخط المرسوم

و
كود:
UserControl.Line (0, 0)-(UserControl.Width, 0), LineColor


كود:

لرسم خط بين نقطتين وتحديد لون الخط كالتالي

كود:
UserControl.Line (احداثيات النقطة الأولى)(احداثيات النقطة الثانية), لون الخط
في حدث Resize لأداة ال UserControl



ضع الكود التالي
كود:
Private Sub UserControl_Resize()


كود:

On Error Resume Next

With UserControl
TxT.Width = .Width - 25
TxT.Height = .Height - 25
TxT.left = 10
TxT.Top = 10
End With
DrawLine vbRed
End Sub


حيث ان
كود:
TxT.Width = .Width – 25


كود:

TxT.Height = .Height – 25

لجعل مربع النص بحجم تقريبي لأداة ال UserControl وقمنا بتقليل الحجم قليلا لتظهر الخطوط التي سنرسمها من الناحية اليمنى والناحية السفلى
و
كود:
TxT.left = 10


كود:

TxT.Top = 10

الخطوط التي سنرسمها من الناحية اليسرى والناحية العليا
و
كود:
DrawLine vbRed


كود:

لاستدعاء اجراء رسم الخطوط باللون الأحمر


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



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



نعود الآن لنبدأ بكتابة الأكواد التي تعطي لمربع النص خصائصه لإضافة خاصية Text نذهب على قائمة Tools ثم نختار Add Procedure كما في الصورة التالية
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء
ستظهر لنا النافذة التالية
تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء
حيث ان Name هي اسم الخاصية ونقوم بإختيار نوع الخاصية وهي Property ونظغط Ok سيظهر لنا الحدثين التاليين في نافذة الأكواد
كود:
Public Property Get Text() As Variant


كود:


End Property

Public Property Let Text(ByVal New_Text As Variant)



End Property

حدث Get : ونوع هذا الإجراء هو (Function) حيث أنه يقوم بإرجاع القيمة التي تم حفظها.
حدث Let: ونوع هذا الإجراء هو (Sub) حيث أنه تقبل الباراميترات وقيمتها تساوي قيمة جديدة وتقوم بإرسال قيمة الخاصية المضافة إلى الأداة المراد تغيير قيمتها من خلال صندوق الخصائص ليتم حفظها لحين استدعائها.



ملاحظة هامة : انتبه الى أن نوع البيانات لخاصية Text هي Variant حيث أنها القيمة الإفتراضية التي يقوم برنامج الفيجوال بيسك بإعطائها للخاصية لكننا نستبدلها بنوع البيانات للخاصية المستخدمة فمثلاً في خاصية Text نستبدلها ب String وفي خاصية Enabled نستبدلها ب Boolean وعند استخدام Enum نستبدلها باسم ال Enum المستخدم سنتعرف لاحقاً ما هو ال Enum



ولكي نعطي خاصية Text قيمة نقوم بتعديل الكود السابق كما يلي
كود:
Public Property Get Text() As String


كود:

Text = TxT.Text

End Property

حيث
كود:
Text = TxT.Text


كود:

أخذ قيمة Text من TxT.Text


وحدث Let ليصبح كما يلي
كود:
Public Property Let Text(ByVal New_Text As String)


كود:

TxT.Text() = New_Text

PropertyChanged "Text"
End Property


حيث
كود:
TxT.Text() = New_Text


كود:

إنشاء خاصية تأخذ قيمة جديدة

و
كود:
PropertyChanged "Text"


كود:

إرسال أمر للنظام بحدوث تغيير في خاصية Text


ولكي نحفظ قيمة الText عند تغييرها من الخصائص يلزمنا حدثي ReadProperties و WriteProperties
كما في الاكواد التالية
كود:
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)


كود:

Call PropBag.WriteProperty("Text", Text, Ambient.DisplayName)End Sub

حفظ قيمة ال Text في حافظة الخصائص
حيث يتم فتح حافظة الخصائص وحفظ اسم الخاصية وقيمتها والقيمة الإفتراضية حيث أن
كود:
Ambient.DisplayName


كود:

هي قيمة الText الإفتراضية وتساوي اسم الأداة

كود:
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)


كود:

Text = PropBag.ReadProperty("Text", Ambient.DisplayName)

End Sub

استدعاء قيمة ال Text من حافظة الخصائص



وفي حدث InitProperties وهو حدث لإعطاء القيمة الأولية للأداة
كود:
Private Sub UserControl_InitProperties()


كود:

Text = Ambient.DisplayName

End Sub

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



خاصية Enabled
كود:
Public Property Get Enabled() As Boolean


كود:

Enabled = TxT.Enabled

End Property
Public Property Let Enabled(ByVal New_Enabled As Boolean)TxT.Enabled() = New_Enabled
PropertyChanged "Enabled"
End Property


خاصية Font
كود:
Public Property Get Font() As Font


كود:

Set Font = TxT.Font

End Property
Public Property Set Font(ByVal New_Font As Font)
Set TxT.Font = New_Font
PropertyChanged "Font"
End Property


خاصية Locked
كود:
Public Property Get Locked() As Boolean Locked = TxT.Locked


كود:

End Property

Public Property Let Locked(ByVal New_Locked As Boolean)
TxT.Locked() = New_Locked
PropertyChanged "Locked"
End Property


خاصية MaxLength
[CODE][Public Property Get MaxLength() As Long
MaxLength = TxT.MaxLength
End Property
Public Property Let MaxLength(ByVal New_MaxLength As Long)
TxT.MaxLength() = New_MaxLength
PropertyChanged "MaxLength"
End Property
/CODE]
خاصية PasswordChar
كود:
Public Property Get PasswordChar() As String


كود:

PasswordChar = TxT.PasswordChar

End Property
Public Property Let PasswordChar(ByVal New_PasswordChar As String)
TxT.PasswordChar() = New_PasswordChar
PropertyChanged "PasswordChar"
End Property


خاصية SelStart
كود:
Public Property Get SelStart() As LongSelStart = TxT.SelStart


كود:

End Property

Public Property Let SelStart(ByVal New_SelStart As Long)
TxT.SelStart() = New_SelStart
PropertyChanged "SelStart"
End Property



خاصية SelText
كود:
Public Property Get SelText() As String


كود:

SelText = TxT.SelText

End Property
Public Property Let SelText(ByVal New_SelText As String)
TxT.SelText() = New_SelText
PropertyChanged "SelText"
End Property


خاصية SelLength
كود:
Public Property Get SelLength() As Long


كود:

SelLength = TxT.SelLength

End Property
Public Property Let SelLength(ByVal New_SelLength As Long)TxT.SelLength() = New_SelLength
PropertyChanged "SelLength"
End Property


خاصية ToolTip
كود:
Public Property Get ToolTip() As String


كود:

ToolTip = TxT.ToolTipText

End Property
Public Property Let ToolTip(ByVal New_ToolTip As String)
TxT.ToolTipText = New_ToolTip
PropertyChanged "ToolTip"
End Property



تابع في المشاركة التالية



المواضيع المتشابهه:

رد مع اقتباس
إضافة رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


Privacy Policy سياسة الخصوصية |

Sitemap

الساعة الآن 09:53 PM.


Powered by vBulletin™ Version 3.8.7
Copyright © 2018 vBulletin Solutions, Inc. All rights reserved.
SEO by vBSEO