عبود عبود
18-09-2018, 11:26 PM
https://i.imgur.com/ybV5rpe.gif
إستكمالا لما بدأناه سابقا فى هذا الموضوع
سلسلة رقم 1 شرح تفصيلى لبرنامج صناعة الإضافات AMS Plugin Maker (http://www.abc4web.net/vb/showthread.php?t=36914)
كنا قد توقفنا عند :
هذه الوظائف هم 19 وظيفة هم كالتالى :
--
function OnCreateObject(ObjectPtr,InstanceHandle)
function OnDeleteObject(ObjectPtr)
function GetWindowHandle(ObjectPtr)
function DrawDesign(ObjectPtr,HDC,WndParent,X,Y,Width,Heigh t,Visible,Enabled)
function DrawRuntime(ObjectPtr,HDC,WndParent,X,Y,Width,Heig ht,Visible,Enabled)
function GetCustomProperties(ObjectPtr)
function SetCustomProperties(ObjectPtr,Properties)
function ShowProperties(ObjectPtr,PluginFolder)
function HideInternalObject(ObjectPtr)
function DoSetFocus(ObjectPtr)
function ShowWindow(ObjectPtr,Visible)
function OnMouseOver(ObjectPtr,WndParent,MouseX,MouseY,X,Y, Width,Height)
function OnMouseLeave(ObjectPtr,WndParent,MouseX,MouseY,X,Y ,Width,Height)
function OnLBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
function OnLBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
function OnLBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
function OnRBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
function OnRBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
function OnRBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
https://i.imgur.com/RQXcMhj.gif
function OnCreateObject(ObjectPtr,InstanceHandle) الوظيفة الأولى: وظيفة حدث إنشاء البليجين وهى
تحتوى هذه الوظيفة على عدد 2 بارميتر وهم :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
InstanceHandle حيث يعبر عن إسم المكتبة المستخدمة فى حالة تشابة إستخدام المكتبات الوظيفية طبعا الإسم هو متغير يعبر عن رقم مقبض المكتبة المستدعاه .
وعلى العموم تستخدم هذه الوظيفة بصفة عامة فى إستدعاء المكتبات البرمجية التى نستخدمها فى إنشاء البليجين أو برمجته .
https://i.imgur.com/RQXcMhj.gif
function OnDeleteObject(ObjectPtr) الوظيفة الثانية: وظيفة حدث حذف البليجين وهى
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
وعلى العموم تستخدم هذه الوظيفة بصفة عامة فى إلغاء إستدعاء المكتبات البرمجية التى نستخدمها فى إنشاء البليجين أو برمجته حتى نخفف العبئ على الذاكرة "الميمورى" .
https://i.imgur.com/RQXcMhj.gif
function GetWindowHandle(ObjectPtr) الوظيفة الثالثة: وظيفة الحصول على رقم مقبض البليجين وهى
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
وعلى العموم يمكن إستخدام هذه الوظيفة للحصول على رقم مقبض بليجين الأوبجيكت الناتج وإرجاع الناتج فى صورة ريتيرن لإسم متغير يمكن فيما بعد إستدعاء أو إستخدام هذا المتغير إذا تطلب الأمر ذلك .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الرابعة: وظيفة رسم وتصميم البليجين فى وقت التصميم " يعنى أثناء البرمجة وكتابة الأكواد فى مشروع الأتوبلاى ميديا ستوديو" وهى :
function DrawDesign(ObjectPtr,HDC,WndParent,X,Y,Width,Heigh t,Visible,Enabled)
تحتوى هذه الوظيفة على عدد 9 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
HDC حيث يعبر مقبض سياق جهاز الذاكرة الحالية لبليجين الأوبجيكت .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
X حيث يعبر عن بداية الموضع الأفقى لبليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Y حيث يعبر عن بداية الموضع الرأسى لبليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Width حيث يعبر عن عرض بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Height حيث يعبر عن إرتفاع بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Visible حيث يعبر عن إذا كان بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين مخفى أو ظاهرا .
Enabled حيث يعبر عن إذا كان بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين مفعل أو غير مفعل .
وفى الصورة التالية توضيح لكل من X و Y و Width و Height و Visible و Enabled طبعا هذا يوضح فيما بعد إنتاج البليجين حتى نفهم هذه المصطلحات من خصائص البليجين Attributes :
https://i.imgur.com/Xfh2GB4.png
https://i.imgur.com/RQXcMhj.gif
الوظيفة الخامسة: وظيفة رسم وتصميم البليجين فى وقت التشغيل والمعاينة " يعنى أثناء المعاينة لمشروع الأتوبلاى ميديا ستوديو أو تشغيل المشروع النهائى" وهى :
function DrawRuntime(ObjectPtr,HDC,WndParent,X,Y,Width,Heig ht,Visible,Enabled)
نفس ما ذكرته سابقا عن الوظيفة السابقة ولكن مع الإختلاف الوظيفى بينهما وقت التشغيل والمعاينة للمشروع .
https://i.imgur.com/RQXcMhj.gif
الوظيفة السادسة: وظيفة إيجاد خصائص البليجين "الخصائص التى نبرمجها للبليجين مثلا اللون وإعدادات البليجين من خط مستخدم مثلا أو تنسيق معين نريد مستخدم البليجين أن يستفيد منه وغيره وفيما يلى بالشرح سوف نتعرف سويا بالتفصيل كيف نفعل هذا" وطبعا إسم الوظيفة هى :
function GetCustomProperties(ObjectPtr)
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
بصفة عامة تستخدم هذة الوظيفة فى حصول البليجين وتخزينة لقيم يقوم بإعدادها المبرمج للبليجين كمثلا قيمة خلفية لونية لنص أو إمكانية تغيير شيئ معين فى البليجين أثناء وقت التصميم DrawDesign
إنظر إلى الصورة التالية :
https://i.imgur.com/jFngsl2.png
https://i.imgur.com/RQXcMhj.gif
الوظيفة السابعة: وظيفة وضع وتغيير خصائص البليجين "الخصائص التى نبرمجها للبليجين مثلا اللون وإعدادات البليجين من خط مستخدم مثلا أو تنسيق معين نريد مستخدم البليجين أن يستفيد منه وغيره وفيما يلى بالشرح سوف نتعرف سويا بالتفصيل كيف نفعل هذا" وطبعا إسم الوظيفة هى :
function SetCustomProperties(ObjectPtr,Properties)
تحتوى هذه الوظيفة على عدد 2 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
Properties حيث يعبر عن قيمة نصية تسترجع من الوظيفة السابقة GetCustomProperties أى أننا نستخدم فيها الريتيرن الذى يتم إرجاعة فى وظيفة GetCustomProperties
بصفة عامة تستخدم هذة الوظيفة فى إيداع وتغيير البليجين لقيم يقوم بإعدادها المبرمج للبليجين كمثلا قيمة خلفية لونية لنص أو إمكانية تغيير شيئ معين فى البليجين أثناء وقت التصميم DrawDesign
فكلا الوظيفتين Get و Set مرتبطين ببعضهما البعض لآداء مهمة تغيير معين فى وقت التصميم أى ما قبل معاينة المشروع يعنى فى مرحلة وضع وبرمجة الأكواد فى برنامج الأتوبلاى ميديا ستوديو .
إنظر إلى الفيديو لتتضح الأمور أكثر بالنسبة للوظيفتين :
https://youtu.be/IanFi5aDP98
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثامنة: وظيفة إظهار خصائص البليجين عند ضغط المستخدم للبليجين على زر خصائص Properties وهذه الوظيفة هى :
function ShowProperties(ObjectPtr,PluginFolder)
تحتوى هذه الوظيفة على عدد 2 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
PluginFolder حيث يعبر عن مسار تنصيب مجلد الإضافة فى مسار إضافات الأوبجيكت لبرنامج الأتوبلاى الذى تم تنصيبة على الجهاز للمبرمج .
إنظر إلى الصورة التالية حتى تعرف عن أى زر نتحدث :
https://i.imgur.com/Q01k2oI.png
https://i.imgur.com/RQXcMhj.gif
الوظيفة التاسعة: وظيفة إخفاء مقبض البليجين أو إخفاء البليجين وعدم ظهورة فى حالة أننا إستخدمنا فى مشروعنا أكثر من صفحة يتم الإنتقال بينهم فلابد فى هذه الحالة من إستخدام هذه الوظيفة إذا كان البليجين الذى نقوم ببرمجته من النوع "windowed object" هذه الوظيفة هى :
function HideInternalObject(ObjectPtr)
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
https://i.imgur.com/RQXcMhj.gif
الوظيفة العاشرة: وظيفة تمكين وضع تركيز الماوس كعنصر إدخال مثل عنصر الإينبوت أو أى عنصر من عناصر الإدخال إذا كان البليجين الذى نقوم ببرمجته من النوع "windowed object" هذه الوظيفة هى :
function DoSetFocus(ObjectPtr)
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الحادية عشر: وظيفة تمكين إظهار وإخفاء البليجين إذا كان البليجين الذى نقوم ببرمجته من النوع "windowed object" هذه الوظيفة هى :
function ShowWindow(ObjectPtr,Visible)
تحتوى هذه الوظيفة على عدد 2 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
Visible حيث يعبر عن قيمة بولينية إما true أو false للإظهار أو الإخفاء .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثانية عشر: وظيفة حدث مرور الماوس على أو فوق عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnMouseOver(ObjectPtr,WndParent,MouseX,MouseY,X,Y, Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث مرور الماوس فوق البليجين .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثالثة عشر: وظيفة حدث مغادرة مرور الماوس من على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnMouseLeave(ObjectPtr,WndParent,MouseX,MouseY,X,Y ,Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث مغادرة مرور الماوس من على البليجين .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الرابعة عشر: وظيفة حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأسفل على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnLBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأسفل على عنصر البليجين .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الخامسة عشر: وظيفة حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأعلى على عنصر البليجين الذى نقوم ببرمجته أى بعد الضغط بيسار الماوس "حالة رفع الإصبع عن الضغط" هذه الوظيفة هى :
function OnLBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأعلى على عنصر البليجين أى بعد الضغط بيسار الماوس "حالة رفع الإصبع عن الضغط" .
https://i.imgur.com/RQXcMhj.gif
الوظيفة السادسة عشر: وظيفة حدث الضغط بيسار الماوس مرتان على التوالى هذه الوظيفة هى :
function OnLBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث الضغط بيسار الماوس مرتان على التوالى أى بالتتابع .
https://i.imgur.com/RQXcMhj.gif
الوظيفة السابعة عشر: وظيفة حدث الضغط بيمين الماوس عندما تكون حالة الضغط هى لأسفل على الزر الأيمن على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnRBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث االضغط بيمين الماوس عندما تكون حالة الضغط هى لأسفل على الزر الأيمن على عنصر البليجين الذى نقوم ببرمجته .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثامنة عشر: وظيفة حدث الضغط بيمين الماوس عندما تكون حالة الضغط هى لأعلى للزر الأيمن "حالة رفع الإصبع بعد الضغط على زر الماوس الأيمن" على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnRBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث االضغط بيمين الماوس عندما تكون حالة الضغط هى لأعلى للزر الأيمن "حالة رفع الإصبع بعد الضغط على زر الماوس الأيمن" على عنصر البليجين الذى نقوم ببرمجته .
https://i.imgur.com/RQXcMhj.gif
الوظيفة التاسعة عشر: وظيفة حدث الضغط بيمين الماوس مرتان على التوالى أو بالتتابع على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnRBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث االضغط بيمين الماوس مرتان على التوالى أو بالتتابع على عنصر الأوبجيكت الذى نقوم ببرمجته .
https://i.imgur.com/RQXcMhj.gif
نستكمل فيما هو قادم " إن شاء الله " و القادم أجمـــــل
إستكمالا لما بدأناه سابقا فى هذا الموضوع
سلسلة رقم 1 شرح تفصيلى لبرنامج صناعة الإضافات AMS Plugin Maker (http://www.abc4web.net/vb/showthread.php?t=36914)
كنا قد توقفنا عند :
هذه الوظائف هم 19 وظيفة هم كالتالى :
--
function OnCreateObject(ObjectPtr,InstanceHandle)
function OnDeleteObject(ObjectPtr)
function GetWindowHandle(ObjectPtr)
function DrawDesign(ObjectPtr,HDC,WndParent,X,Y,Width,Heigh t,Visible,Enabled)
function DrawRuntime(ObjectPtr,HDC,WndParent,X,Y,Width,Heig ht,Visible,Enabled)
function GetCustomProperties(ObjectPtr)
function SetCustomProperties(ObjectPtr,Properties)
function ShowProperties(ObjectPtr,PluginFolder)
function HideInternalObject(ObjectPtr)
function DoSetFocus(ObjectPtr)
function ShowWindow(ObjectPtr,Visible)
function OnMouseOver(ObjectPtr,WndParent,MouseX,MouseY,X,Y, Width,Height)
function OnMouseLeave(ObjectPtr,WndParent,MouseX,MouseY,X,Y ,Width,Height)
function OnLBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
function OnLBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
function OnLBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
function OnRBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
function OnRBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
function OnRBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
https://i.imgur.com/RQXcMhj.gif
function OnCreateObject(ObjectPtr,InstanceHandle) الوظيفة الأولى: وظيفة حدث إنشاء البليجين وهى
تحتوى هذه الوظيفة على عدد 2 بارميتر وهم :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
InstanceHandle حيث يعبر عن إسم المكتبة المستخدمة فى حالة تشابة إستخدام المكتبات الوظيفية طبعا الإسم هو متغير يعبر عن رقم مقبض المكتبة المستدعاه .
وعلى العموم تستخدم هذه الوظيفة بصفة عامة فى إستدعاء المكتبات البرمجية التى نستخدمها فى إنشاء البليجين أو برمجته .
https://i.imgur.com/RQXcMhj.gif
function OnDeleteObject(ObjectPtr) الوظيفة الثانية: وظيفة حدث حذف البليجين وهى
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
وعلى العموم تستخدم هذه الوظيفة بصفة عامة فى إلغاء إستدعاء المكتبات البرمجية التى نستخدمها فى إنشاء البليجين أو برمجته حتى نخفف العبئ على الذاكرة "الميمورى" .
https://i.imgur.com/RQXcMhj.gif
function GetWindowHandle(ObjectPtr) الوظيفة الثالثة: وظيفة الحصول على رقم مقبض البليجين وهى
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
وعلى العموم يمكن إستخدام هذه الوظيفة للحصول على رقم مقبض بليجين الأوبجيكت الناتج وإرجاع الناتج فى صورة ريتيرن لإسم متغير يمكن فيما بعد إستدعاء أو إستخدام هذا المتغير إذا تطلب الأمر ذلك .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الرابعة: وظيفة رسم وتصميم البليجين فى وقت التصميم " يعنى أثناء البرمجة وكتابة الأكواد فى مشروع الأتوبلاى ميديا ستوديو" وهى :
function DrawDesign(ObjectPtr,HDC,WndParent,X,Y,Width,Heigh t,Visible,Enabled)
تحتوى هذه الوظيفة على عدد 9 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
HDC حيث يعبر مقبض سياق جهاز الذاكرة الحالية لبليجين الأوبجيكت .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
X حيث يعبر عن بداية الموضع الأفقى لبليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Y حيث يعبر عن بداية الموضع الرأسى لبليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Width حيث يعبر عن عرض بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Height حيث يعبر عن إرتفاع بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين .
Visible حيث يعبر عن إذا كان بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين مخفى أو ظاهرا .
Enabled حيث يعبر عن إذا كان بليجين الأوبجيكت الناتج عند إضافة وإستخدام هذا البليجين مفعل أو غير مفعل .
وفى الصورة التالية توضيح لكل من X و Y و Width و Height و Visible و Enabled طبعا هذا يوضح فيما بعد إنتاج البليجين حتى نفهم هذه المصطلحات من خصائص البليجين Attributes :
https://i.imgur.com/Xfh2GB4.png
https://i.imgur.com/RQXcMhj.gif
الوظيفة الخامسة: وظيفة رسم وتصميم البليجين فى وقت التشغيل والمعاينة " يعنى أثناء المعاينة لمشروع الأتوبلاى ميديا ستوديو أو تشغيل المشروع النهائى" وهى :
function DrawRuntime(ObjectPtr,HDC,WndParent,X,Y,Width,Heig ht,Visible,Enabled)
نفس ما ذكرته سابقا عن الوظيفة السابقة ولكن مع الإختلاف الوظيفى بينهما وقت التشغيل والمعاينة للمشروع .
https://i.imgur.com/RQXcMhj.gif
الوظيفة السادسة: وظيفة إيجاد خصائص البليجين "الخصائص التى نبرمجها للبليجين مثلا اللون وإعدادات البليجين من خط مستخدم مثلا أو تنسيق معين نريد مستخدم البليجين أن يستفيد منه وغيره وفيما يلى بالشرح سوف نتعرف سويا بالتفصيل كيف نفعل هذا" وطبعا إسم الوظيفة هى :
function GetCustomProperties(ObjectPtr)
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
بصفة عامة تستخدم هذة الوظيفة فى حصول البليجين وتخزينة لقيم يقوم بإعدادها المبرمج للبليجين كمثلا قيمة خلفية لونية لنص أو إمكانية تغيير شيئ معين فى البليجين أثناء وقت التصميم DrawDesign
إنظر إلى الصورة التالية :
https://i.imgur.com/jFngsl2.png
https://i.imgur.com/RQXcMhj.gif
الوظيفة السابعة: وظيفة وضع وتغيير خصائص البليجين "الخصائص التى نبرمجها للبليجين مثلا اللون وإعدادات البليجين من خط مستخدم مثلا أو تنسيق معين نريد مستخدم البليجين أن يستفيد منه وغيره وفيما يلى بالشرح سوف نتعرف سويا بالتفصيل كيف نفعل هذا" وطبعا إسم الوظيفة هى :
function SetCustomProperties(ObjectPtr,Properties)
تحتوى هذه الوظيفة على عدد 2 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
Properties حيث يعبر عن قيمة نصية تسترجع من الوظيفة السابقة GetCustomProperties أى أننا نستخدم فيها الريتيرن الذى يتم إرجاعة فى وظيفة GetCustomProperties
بصفة عامة تستخدم هذة الوظيفة فى إيداع وتغيير البليجين لقيم يقوم بإعدادها المبرمج للبليجين كمثلا قيمة خلفية لونية لنص أو إمكانية تغيير شيئ معين فى البليجين أثناء وقت التصميم DrawDesign
فكلا الوظيفتين Get و Set مرتبطين ببعضهما البعض لآداء مهمة تغيير معين فى وقت التصميم أى ما قبل معاينة المشروع يعنى فى مرحلة وضع وبرمجة الأكواد فى برنامج الأتوبلاى ميديا ستوديو .
إنظر إلى الفيديو لتتضح الأمور أكثر بالنسبة للوظيفتين :
https://youtu.be/IanFi5aDP98
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثامنة: وظيفة إظهار خصائص البليجين عند ضغط المستخدم للبليجين على زر خصائص Properties وهذه الوظيفة هى :
function ShowProperties(ObjectPtr,PluginFolder)
تحتوى هذه الوظيفة على عدد 2 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
PluginFolder حيث يعبر عن مسار تنصيب مجلد الإضافة فى مسار إضافات الأوبجيكت لبرنامج الأتوبلاى الذى تم تنصيبة على الجهاز للمبرمج .
إنظر إلى الصورة التالية حتى تعرف عن أى زر نتحدث :
https://i.imgur.com/Q01k2oI.png
https://i.imgur.com/RQXcMhj.gif
الوظيفة التاسعة: وظيفة إخفاء مقبض البليجين أو إخفاء البليجين وعدم ظهورة فى حالة أننا إستخدمنا فى مشروعنا أكثر من صفحة يتم الإنتقال بينهم فلابد فى هذه الحالة من إستخدام هذه الوظيفة إذا كان البليجين الذى نقوم ببرمجته من النوع "windowed object" هذه الوظيفة هى :
function HideInternalObject(ObjectPtr)
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
https://i.imgur.com/RQXcMhj.gif
الوظيفة العاشرة: وظيفة تمكين وضع تركيز الماوس كعنصر إدخال مثل عنصر الإينبوت أو أى عنصر من عناصر الإدخال إذا كان البليجين الذى نقوم ببرمجته من النوع "windowed object" هذه الوظيفة هى :
function DoSetFocus(ObjectPtr)
تحتوى هذه الوظيفة على عدد 1 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الحادية عشر: وظيفة تمكين إظهار وإخفاء البليجين إذا كان البليجين الذى نقوم ببرمجته من النوع "windowed object" هذه الوظيفة هى :
function ShowWindow(ObjectPtr,Visible)
تحتوى هذه الوظيفة على عدد 2 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
Visible حيث يعبر عن قيمة بولينية إما true أو false للإظهار أو الإخفاء .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثانية عشر: وظيفة حدث مرور الماوس على أو فوق عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnMouseOver(ObjectPtr,WndParent,MouseX,MouseY,X,Y, Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث مرور الماوس فوق البليجين .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثالثة عشر: وظيفة حدث مغادرة مرور الماوس من على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnMouseLeave(ObjectPtr,WndParent,MouseX,MouseY,X,Y ,Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث مغادرة مرور الماوس من على البليجين .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الرابعة عشر: وظيفة حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأسفل على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnLBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأسفل على عنصر البليجين .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الخامسة عشر: وظيفة حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأعلى على عنصر البليجين الذى نقوم ببرمجته أى بعد الضغط بيسار الماوس "حالة رفع الإصبع عن الضغط" هذه الوظيفة هى :
function OnLBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث الضغط بيسار الماوس عندما تكون حالة الضغط هى لأعلى على عنصر البليجين أى بعد الضغط بيسار الماوس "حالة رفع الإصبع عن الضغط" .
https://i.imgur.com/RQXcMhj.gif
الوظيفة السادسة عشر: وظيفة حدث الضغط بيسار الماوس مرتان على التوالى هذه الوظيفة هى :
function OnLBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث الضغط بيسار الماوس مرتان على التوالى أى بالتتابع .
https://i.imgur.com/RQXcMhj.gif
الوظيفة السابعة عشر: وظيفة حدث الضغط بيمين الماوس عندما تكون حالة الضغط هى لأسفل على الزر الأيمن على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnRBtnDown(ObjectPtr,WndParent,MouseX,MouseY,X,Y,W idth,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث االضغط بيمين الماوس عندما تكون حالة الضغط هى لأسفل على الزر الأيمن على عنصر البليجين الذى نقوم ببرمجته .
https://i.imgur.com/RQXcMhj.gif
الوظيفة الثامنة عشر: وظيفة حدث الضغط بيمين الماوس عندما تكون حالة الضغط هى لأعلى للزر الأيمن "حالة رفع الإصبع بعد الضغط على زر الماوس الأيمن" على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnRBtnUp(ObjectPtr,WndParent,MouseX,MouseY,X,Y,Wid th,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث االضغط بيمين الماوس عندما تكون حالة الضغط هى لأعلى للزر الأيمن "حالة رفع الإصبع بعد الضغط على زر الماوس الأيمن" على عنصر البليجين الذى نقوم ببرمجته .
https://i.imgur.com/RQXcMhj.gif
الوظيفة التاسعة عشر: وظيفة حدث الضغط بيمين الماوس مرتان على التوالى أو بالتتابع على عنصر البليجين الذى نقوم ببرمجته هذه الوظيفة هى :
function OnRBtnDoubleClick(ObjectPtr,WndParent,MouseX,Mouse Y,X,Y,Width,Height)
تحتوى هذه الوظيفة على عدد 8 باراميتر وهو :
ObjectPtr حيث يعبر عن إسم البليجين وطبعا الإسم هو متغير يعبر عن رقم مقبض بليجين الأوبجيكت الناتج .
WndParent حيث يعبر عن مقبض الإيطار الأصل لبليجين الأوبجيكت.
MouseX حيث يعبر عن الموضع الأفقى لمؤشر الماوس .
MouseY حيث يعبر عن الموضع الرأسى لمؤشر الماوس .
X حيث هو الموضع الأفقى أو بداية نقطة رسم البليجين الأفقية .
Y حيث هو الموضع الرأسى أو بداية نقطة رسم البليجين الرأسية .
Width حيث هو عرض البليجين ككل .
Height حيث هو إرتفاع البليجين ككل .
وبصفة عامة نستخدم هذه الوظيفة فى حالة أننا نريد تنفيذ أكواد معينة فى حدث االضغط بيمين الماوس مرتان على التوالى أو بالتتابع على عنصر الأوبجيكت الذى نقوم ببرمجته .
https://i.imgur.com/RQXcMhj.gif
نستكمل فيما هو قادم " إن شاء الله " و القادم أجمـــــل