المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دورة برمجة العناصر الدرس الأول


issamdnn
03-02-2010, 11:40 AM
بسم الله الرحمن الرحيم والصلاة والسلام على أشرف الخلق الرسول الأمين سيدنا محمد وعلى آله وأصحابه الطاهرين أجمعين .
سأبدأ بعون الله بأول درس حول برمجة العناصر . وأعتذر عن التأخير وذلك بسبب ضروف العمل والحياة وأنا أبدأ هذه الدورة أهدي أجرها أولا لمعلم الخلق الرسول الكريم محمد صلى الله عليه وسلم و لوالدي ووالدتي و أخوتي وأخواتي ولمشرفي الموقع وجميع الأعضاءو أتمنى أن يتمكن الأعضاء المتقدمين أو المبتدأين بكتابة أول مكوناتهم الخاصة بعد إتمام هذه الدورة ...
لن أطيل كثيراً في الشرح لكن أحب أن أنوه بأن الدراسة النظرية لا تقل شأناً عن التطبيق العملي ف****ا ممن سيتابع الدورة الإهتمام بالقسمين النظري والعملي :

وإليكم الدرس الأول:

توسيع vc l بدلفي:إن المكونات في دلفي عبارة عن أصناف وتكون هذه الأصناف البناء الاساسي لمكتبة المكونات الرئيسية (VCL) . ويمكن توسيع هذه المكتبة بإضافة مكونات جديدة في حزمة برمجية (Package) وتنصيبها في دلفي أو إضافة هذه المكونات لحزم برمجية أخرى وستكون هذه الأصناف (المكونات) مشتقة من أصناف تتعلق بمكونات موجودة , أو من الصنف الأساس TComponent وذلك بإضافة إمكانيات جديدة (خصائص أو أحداث) إلى الأصناف التي ترث.
يمكن إنشاء المكونات بطريقتين رئيسيتين :
1- إشتقاق مكون جديد من مكون موجود .
2- إشتقاق مكون من صنف مكون مجرد(صنف لا يتعلق بمكون قابل للإستخدام )
يحتوي البناء الأساسي للمكتبة VCL على الكثير من هذه الأصناف الوسيطية والتي يشار إليها عادة بالأسم TCustem في أسمائها لتسمح للمستخدم بإختيار سلوك إفتراضي للمكون الجديد الخاص بالمستخدم وتغيير خصائصه.
أنواع حزم المكونات في دلفي Components packages in Delphi تتم إضافة المكونات إلى حزم المكونات وكل حزمة مكون هي في الأساس مكتبة DLL لها اللاحقة BPL (Borland Package Library ) ويوجد نمطان للحزم البرمجية حيث تستخدم بيئة التطوير (IDE) حزم تسمى بحزم زمن التصميم وتستخدم التطبيقات حزم زمن التنفيذ بشكل إختياري (ليس إجباري) ويحدد خيار الحزمة design-only أو run-only وعندما يحاول المستخدم تنصيب حزمة فإن بيئة التطوير تتحقق فيما إذا كانت تملك المؤشر design-only أو run-only وتقرر فيما إذا كانت ستدع المستخدم ينصب الحزمة , وفيما إذا كانت ستضاف إلى قائمة حزم زمن التنفيذ. وبسبب وجود خيارين غير متعاكسين ولكل منهما حالتان فأننا نميز أربعة أنواع من حزم المكونات :
1- حزم مكونات Design-only : يمكن تنصيبها في دلفي, وتحتوي عادة أجزاء المكون المتعلقة بزمن التصميم , ولا تحتوي عادة على المكونات نفسها , رغم أنها ليست الطريقة الأكثر إحترافية , ويتم ارتباط شيفرة مكونات هذا النوع ضمن ملف تنفيذي بشكل ثابت وذلك بإستخدام ملفات ال DCU ذات الصلة. كما يمكن عملياً إستخدام هذه الحزمة كحزمة زمن التنفيذ.
2- حزم مكونات Run-only : تستخدمها التطبيقات في دلفي أثناء التنفيذ ولا يمكن أن تنصب هذه الحزم في بيئة دلفي ولكنها تضاف آلياً إلى قائمة حزم زمن التنفيذ . عند تنصيب حزمة design-only فإنك سوف تحتاجها. تحتوي هذه الحزم عادة شيفرة أصناف مكونات على عكس الحزم من النوع الأول ولكن بدون دعم لزمن التصميم وتعتبر هذه الحزم هامة لإمكانية توزيعها بحرية في التطبيقات , ولكن لن يكون بإستطاعة مبرمجين أخرين تنصيبها في بيئة دلفي لبناء برامج جديدة.
3- حزم مكونات صرفة (ليست design-only و run-only) لا يمكن تنصيب هذه الحزم ولن تضاف إلى قائمة حزم زمن التنفيذ آلياً . وهي نادرة الإستخدام
4- حزم تملك كلا الخيارين: يمكن تنصيبها وتضاف ألياً إلى قائمة حزم زمن التنفيذ . وتحتوي هذه الحزم مكونات تتطلب دعماً قليلاً لزمن التصميم , أو بدون دعم (بعيداً عن شيفرة تسجيل المكون).
ملاحظة: تبدأ أسماء الملفات لحزم ال design-only بدلفي بالأحرف DCL مثال DCLSTD60.BPL وتبدأ أسماء ملفات حزم ال Run-only بالأحرف VCL مثل VCL60.BPL .
عند تنفيذ حزمة زمن التنفيذ فأن الناتج سيكون ملف DLL مع شيفرة مترجمة (الملفات من النوع BPL) وملف يحتوي معلومات رموز حول الوحدات التي تشكل أجزاء الحزمة البرمجية . دون الوصول إلى ملفات الوحدات (DCU) والتي تحتوي على معلومات الرموز وشيفرة الآلة . وسنقوم بشرح كيفية إنشاء حزمة برمجية فيما بعد .
للحصول على معلومات تخص ملفات الربط الديناميكي يمكن مراجعة المنتدى حول نفس الموضوع .
قواعد إنشاء المكونات :يمكن التعرف بسهولة على هذه القواعد التي يوجد أغلبها في ملف ال****** المرفق مع نسخة دلفي والمسمى Delphi Component Writer Grid Help والذي أنصح بقرائته بتمعن.
وسوف نستعرض الأن أهم القواعد لإنشاء المكونات.
*- الإطلاع على البنية الهيكلية لجميع أصناف مكتبة المكونات المرئية VCL ورسم مخطط بياني للأصناف الموجودة .
*- إتباع قوانين التسمية القياسية في دلفي , حيث يوجد العديد منها للمكونات. ويسهل اتباع هذه القواعد على المبرمجين الآخرين التفاعل مع المكونات الخاصة بك. وتطويرها فيما بعد .
*- استخدام الإستثاءات حيث أن المكون يجب أن يقوم بإطلاق إستثناء عند وجود خطأ ما . فعندما يتم حجز الموارد من أي نوع يجب أن تقوم بتغليفها بإستخدام كتل try/finally أو إستدعائات هدامة كحل مناسب أيضاً.
*- أبقاء المكونات بسيطة وتحاكي المكونات الأخرى .
*- أستخدم أسماء متماثلة للخصائص والمناهج والأحداث . عندما يمكن ذلك .
*-دراسة مفاهيم الوراثة وإعادة صياغة المناهج وتعدد أشكالها (overloading أو overriding) والفروقات بين المقاطع الأساسية في المكونات private /published/public والتي سأشرح بعضاً منها للمستخدمين المبتدأين في دروس لاحقة كما يمكن الإطلاع عليها وبشرح مفصل من خلال ملف ال****** المرفق مع دلفي .
الأصناف الأساسية للمكونات :
1- الصنف TWinControl : وهو الصنف الأب لكل مكون يعتمد على نافذة كما يظهر أسمه . وتستطيع المكونات التي تتفرع عن هذا الأب إستقبال تركيز الإدخال. وتحصل على رسائل ويندوز من النظام ويمكن إستخدام علامة تبويب نافذتها عند إستدعاء توابع API . وعند إنشاء عنصر تحكم نافذي فإنك ترث من الصنف المشتق TCustemControl الذي يمتلك ميزات جيدة إضافية عن الصنف السابق(دعم لرسم عنصر التحكم).
2- الصنف TGraphicControl : وهو الصنف الأب لمكونات مرئية لا تمتلك أي علامة تبويب Windows ولا تستطيع هذه المكونات إستقبال تركيز الإدخال كما في الصنف الأول ولا تستجيب للرسائل الخاصة بالنوافذ . وعندما تقوم بإنشاء عنصر تحكم بياني فإنك سوف ترث من هذا الصنف مباشرة .
3- الصنف Tcomponent : هو الصنف الأب لجيمع المكونات بما فيها عناصر التحكم ويمكن إستخدامه كصنف أب لمكونات غير مرئية
في الدروس القادمة إنشاء الله سوف نقوم بإستخدام مختلف الأصناف السابقة في بناء مكوناتنا.

الدرس التالي: http://www.delphi4arab.com/forum/showthread.php?t=2518

إذا كان هنالك أسئلة على الدرس الأول يمكن وضعها في قسم الأسئة .
أتمنى التوفيق للجيمع والله الموفق.

nabilkeb
03-02-2010, 03:05 PM
جميل أخي ما تفضلت به.
بالتوفيق

cargem
04-08-2010, 02:38 PM
منكم ارفاق هذا المرجع Delphi Component Writer Grid

B.M.AbdelAziZ
04-08-2010, 03:11 PM
السلام عليكم ورحمة الله
المرجع Delphi Component Writer Grid
خطا مطبعي/املائي! الصحيح: Component Writer's Guide
تجده بصيغة PDF ضمن قرص دلفي 7

cargem
05-08-2010, 02:00 PM
شكرا اخي B.M.AbdelAziZ على التوضيح
انا افتكرته كتاب ثاني
بصراحه اخونا issamdnn ابدع في الموضوع وسوف نقرا جميع دروسه

ouamara
14-09-2010, 12:00 PM
السلام عليكم ورحمة الله

شكرا اخي