ملف المساعدة Help File

فى هذا الفصل نشرح لك كيفيه إضافة ملف مساعدة للبرنامج (Help File) ، وكيفيه التعديل فى هذا الملف ، وكيفيه تصميم ملف مساعدة. وكذلك نشرح أنواع الأخطاء التى يتعرض لها البرنامج وكيفيه معالجتها وكيفيه معالجتها.

كما تعلم أن ملف المساعدة عبارة عن ملف يحتوى على معلومات مساعدة لمستخدم البرنامج ، بحيث توضح هذه المعلومات كيفيه الاستخدام وبعض المعلومات المطلوبة.

ولإضافة ملف مساعدة للبرنامج توجد طريقتين :

1. استعمال معالج (App Wizard) VC++لإضافة ملف التعليمات ثم التعديل فيه بما يناسب البرنامج.

2. كتابة ملف المساعدة من البداية وترجمته ثم استدعائه من البرنامج.

- الطريقة الأولى

يوفر معالج (App Wizard) VC++ تخليق وترجمة وإضافة ملف مساعدة للبرنامج وذلك من خلال خطوات تخليق التطبيق ولتوضيح ذلك تابع معنا خطوات تصميم البرنامج (يمكن لك فتح الملف Vcex28 من الفهرس Chpt18 وتنفيذه والضغط على مفتاح F1 تحصل على المساعدة (help). التى تشرح العمليات الأساسيه للبرنامج وكما فى الشكل 16-1.

clip_image001

خطوات تصميم البرنامج

1. ابدأ تطبيق جديد بإختيار File ثم New ثم Project Work Space واكتب له اسم وليكن Vcex28.

2. حدد نوع البرنامج من النوع Single document.

3. تابع خطوات تخليق التطبيق بالنقر على NEXT حتى تحصل على الخطوه رقم 4 وإختار خانه الاختيار Context-Sensitve Help بالنقر عليها كما فى الشكل 16-2.

clip_image003

شكل 16-2

وهذا الاختيار معناه إضافه ملف مساعدة للبرنامج حيث يحتوى الملف على شرح العمليات الأساسيه للبرنامج.

4. انقر Finsh لإنهاء خطوات تخليق البرنامج.


ترجمه وتنفيذ البرنامج

بعد تخليق البرنامج بهذه المواصفات وتحديد اختيار إضافة ملف مساعدة قم بترجمة وتنفيذ البرنامج (بدون التعديل فيه) بالضغط على المفتاحين Ctrl + F5 يقوم برنامج VC++ بترجمة ملف المساعدة الذى تم تخليقه مع البرنامج وإلحاقه بالبرنامج.

- جرب إستعمال البرنامج بالضغط على مفتاح F1 تحصل على شاشه المساعده التى إضافها معالج VC++.

- جرب إستعمال شاشات المساعده تلاحظ أنها مثل الشاشات المساعده القياسيه الموجودة فى أى برنامج نوافذى وبهذا تم إضافة ملف مساعدة بدون كتابة أمر واحد. وقبل شرح كيفيه التعديل فى ملفات المساعدة نشرح أولاً هذه الملفات والأشكال المختلفه لها.

ملفات المساعدة

عند تحديد الاختيار Context help كما فى المثال السابق (Vcex28) يقوم معالج التطبيقات (App Wizard) بتخليق ملفات المساعدة الأساسيه للبرنامج ، حيث يتم تخليق فهرس فرعى بالاسم hlp داخل الفهرس Vcex28 وداخل الفهرس hlp توجد مجموعة من الملفات كما فى الشكل 16-3.

clip_image005

شكل 16-3

* الملفان AFXPrint , AFXCore عباره عن ملفات نصيه تأخذ الامتداد rtf وهذا الامتداد اختصار للعباره (Rich Text Format) وهى أحد الصور التى يخرجها معالج الكلمات MS Word ، وهى الصورة التى يكتب لها ملف المساعدة والملف الأول مسئول عن المساعدات الأساسيه للبرنامج والملف الثانى مسئول عن مساعدات الطباعة ، ويتم ترجمه هذه الملفات بواسطه مترجم ملفات المساعدة HCW الذى يحولها إلى ملفات مساعدة يصلح استدعائها من داخل البرنامج.

* الملفات الباقيه حتى الملف Scmin عبارة عم ملفات أيقونات المساعدة التى تظهر داخل ملف المساعدة عند استدعائه.

* الملف Vcex28.hlp هو ملف المساعدة المصاحب للبرنامج Vcex28 بعد ترجمة الملفات AFXPrint.rtf , AFXCore.rtf.

* الملفات Vcex28.cnt ، Vcex28.hm ، Vcex.hpj ملفات مساعدة لعمليه ترجمة ملفات المساعدة وتم تخليقها تلقائياً.

تعديل ملفات المساعدة

ذكرنا فى الفقرة السابقه أن معالج التطبقات يولد الملفان AFXPrint.rtf , AFXCore.rtf وهما ملفان المساعدة الأساسيه ، ويتم ترجمتهما تلقائياً لتخليق ملف المساعدة.

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

- بإستخدام معالج الكلمات MS Word قم بفتح الملف AFXCore.rtf من الفهرس الفرعى hlp من الفهرس الفرعى Vcex28 تحصل على الشكل 16-4.

clip_image007

شكل 16-4

والشكل 16-4 يعرض محتويات ملف المساعدة التى تظهر عند تحديد اختيار المساعده فى البرنامج (help) ولكنها مكتوبة بقواعد خاصه نشرحها عند شرح كيفيه إنشاء ملف مساعدة.

- ولتوضيح عمليه التعديل قم بالتغيير بإضافه أى جملة آخرى واحفظ التغييرات كما فى الشكل 16-5 حيث تم تغيير عنوان ملف المساعدة.

clip_image009

شكل 16-5

- افتح ملف البرنامج Vcex28 مرة آخرى من داخل بيئه VC++.

- من القائمه الرئيسيه من القائمه الفرعيه Bulid اختر ReBuild All فيتم ترجمة جميع ملفات البرنامج بما فيهاملفات المساعدة المصاحبه للبرنامج.

أى يتم إعادة ترجمه الملف AFXCore.rtf الذى تم تعديله.

- قم بتنفيذ البرنامج بالضغط على المفتاحين Ctrl+F5.

- جرب استعمال ملف المساعدة بالضغط على المفتاح F1 تحصل على شاشه المساعدة بعد التغيير كما فى الشكل 16-6.

clip_image011

شكل 16-6

أجزاء ملف المساعدة

يتكون ملف المساعدة من مجموعة أجزاء نعرضها فيما يلى :

1. عنوان ملف المساعدة

وهو ما يكتب فى أول الملف بين العلامتين << >> كما فى الفقرة السابقة حيث تم تغيير عنوان ملف المساعدة.

2. إختيارات ملف المساعدة

وهى مجموعة الاختيارات الرئيسيه للمساعدة والتى يؤدى النقر عليها إلى ظهور معلومات أو اختيارات آخرى.

ويتم تصميمها كما يلى :

- كتابة كلمه Commands قبل الاختيارات الرئيسيه.

- كتابة كل اختيار فى سطر منفصل.

- تغيير طبيعه كل اختيار إلى double under line (أى مسطر مرتين).

- إنهاء الاختيارات بفاصل صفحات (Ctrl + Enter).

وفى البرنامج السابق كانت الاختيارات الأساسيه هى :

File Menu ، Edit Menu ، Record Menu ، .........

وسوف نشرح فى الفقرة التاليه كيفيه إضافة اختيار إلى الاختيارات الموجودة.

3. الاختيارات الفرعية

وهى عبارة عن قائمه الاختيارات الفرعيه التى تظهر مع كل اختيار من اختيارات القائمه الرئيسيه فمثلاً عند النقر على الاختيار الأساسى File تظهر قائمه الاختيارات الفرعيه.

New ، Open ، Save ، Save As ، Print ، .......

ويتم تصميمها كما يلى :

- عمل فاصل صفحات جديد (Ctrl + Enter).

- كتابة اسم قائمه الاختيارات الأساسيه مسبوقاً بالعلامه # وذلك بالصورة التاليه :

# K $ File Menu Commands

- كتابة اختيارات القائمه الفرعيه فى سطور منفصلة بحيث نأخذ طبيعه الخط Under Line مع كتابه سطر يوضع أمام كل اختيار لتوضيح عمله كما بالشكل 16-7.

clip_image012

شكل 16-7

ملاحظات

- عند وضع العلامة # قبل الجملة فهذا يعنى أن الجملة تؤدى إلى اختيارات آخرى عند النقر عليها.

- عند وضع العلامة $ قبل الجمله فهذا يعنى أن الجملة تستخدم كعنوان.

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

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

- بإستخدام معالج الكلمات MS Word افتح ملف المساعدة AFXCore.rtf من الفهرس hlp من الفهرس Vcex28.

- اضف اختيار فى نهاية الاختيارات الأساسيه لملف المساعدة (Books) كما فى الشكل 16-8.

clip_image013

شكل 16-8

n فى نهاية الاختيارات الفرعيه اضف قائمه اختيارات فرعيه للاختيار Books كما فى الشكل 16-9.

clip_image014

- احفظ التغيرات وعد إلى برنامج VC++ وافتح البرنامج Vcex28 وأعد ترجمته بالضغط على المفتاحين Alt + F8.

- نفذ البرنامج بالضغط على المفتاحين Ctrl + F5 وجرب استعماله بالضغط على المفتاح F1 تحصل على شاشه المساعدة وبها الاختيار الجديد Books.

- انقر الاختيار Books تحصل على قائمه الاختيارات الفرعيه C/C++ ، VC++1 ، CV++2.

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

- الطريقه الثانيه

تعتمد هذه الطريقه على إنشاء ملف المساعدة من البداية بعيداً عن معالج التطبيقات (APP Wizard) ، ويتم تصميم ملف المساعدة بالخطوات التاليه :

1. كتابة ملف التعليمات باستخدام أحد برامج معالجات الرسائل مثل برنامج كتابة الرسائل MS Word، مع مراعاة قواعد كتابة ملف المساعدة المذكورة فى أجزاء ملف المساعدة ، ويتم تخزين الملف فى الصورة RTF.

2. ترجمة ملف المساعدة باستخدام مترجم ملف المساعدة HCW وهو عبارة عن برنامج مساعد ملحق ببرنامج VC++ ، يمكن لك تشغيل هذا البرنامج من مجموعه برنامج VC++ أو تشغيله من Windows 95 باختيار تشغيل ثم كتابة مسار البرنامج التالى :

C : \MSdev \bin \HCW

تحصل على الشاشه الرئيسيه للبرنامج كما فى الشكل 16-10.

clip_image015

شكل 16-10

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

3. استدعاء ملف المساعدة من داخل البرنامج بإستعمال الداله Winhelp( ).

- مقارنه بين الطريقه الأولى والطريقه الثانيه

تعتبر الطريقه الأولى أبسط وأسهل حيث توفر على المبرمج كتابه ملف المساعدة من البدايه وترجمته وكذلك استدعائه مع سهولة التعديل فى ملف المساعدة ، فإذا كان البرنامج لا يحتاج أكثر من ملفات المساعدة التى يخلقها برنامج VC++ مع التعديل فى ملف المساعدة يستخدم الطريقه الأولى.

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

تصحيح الأخطاء (debuging)

فى هذه الفقرة نشرح الأنواع المختلفه للأخطاء وسبب حدوث كل منها وكيفيه التغلب على هذه الاخطاء ، ثم نشرح بالتفصيل الخطأ المنطقى (Logic error) وأدوات متابعته والتغلب عليه من بيئه برنامج VC++ والتى تسمى Debug.

توجد ثلاثه أنواع من الأخطاء المحتمل وجودها فى البرنامج ولكل نوع طريقه لمتابعته وهذه الأنواع هى :

1. الخطأ الهجائى Syntax error

هذا الخطأ يحدث نتيجه خطأ فى كلمات أدو دوال اللغة فمثلاً الداله Message Box( ) عند كتابتها بشكل مختلف أو بحروف ناقصة تحصل على رسالة خطأ مع مراعاة أنه يجب أن يكون أول حرف دائما CAPITAL ، وتظهر هذه الرسالة عند ترجمة البرنامج مع تحديد رقم السطر الذى يوجد به الخطأ.

ويعتبر هذا النوع من أبسط أنواع الأخطاء حيث يتم اكتشافه وتصحيحه بسهولة ، وبالتأكيد مر بك هذا الخطأ كثيراً ، وطريقه تصحيحه هى النقر مرتين على رسالة الخطأ فتحصل على السطر الذى يحتوى على الخطأ ، ثم تراجع الداله أو الأمر المكتوب فى هذا السطر وتصممه ثم تعيد ترجمة البرنامج.

2. خطأ أثناء التشغيل Run time error

يحدث هذا الخطأ أثناء تشغيل البرنامج وذلك لعدم إمكانية تنفيذ عمليه معينه. فمثلاً عند وجود أمر طباعه لابد أن تكون الة الطباعة فى حاله استعداد أى مفتوحة فإذا كانت غير جاهزة لا ينفذ أمر الطباعة وتصدر رساله خطأ من برنامج النوافذ (مدير الطباعة) وقد ينتهى تشغيل البرنامج بشكل غير مقبول ، والحل هو مراعاة ذلك فى البرنامج ، فيجب على المبرمج اختبار حالة الة الطباعة قبل إصدار الأمر ، فإذا كانت جاهزة ينفذ أمر الطباعة وإلا يصدر البرنامج (وليس برنامج النوافذ) رساله تفيد ذلك وتخير المستخدم فى الاستمرار أم لا.

ويمكن استخدام اكثر من دالة لإظهار رسالة الخطأ ، فيمكن استخدام الداله Message Box( ) بالمعاملات المختلفه التى ذكرناها فى الفصل ( 6 ) فيتم تحديد شكل الرساله وصندوق الحوار ، وعلى أساس استجابه المستخدم يستمر البرنامج.

ويمكن استخدام الداله AFXMessage Box( ) فى إظهار رساله الخطأ ، حيث تتميز هذه الداله بغظهار الرساله وبجوارها علامه التحذير === مع إمكانيه كتابه نفس معاملات الداله Message Box( ).

جرب إضافه زر أوامر إلى البرنامج واكتب فى دالته السطر التالى :

AFX Message Box (“Error .... Contiune ....”, 3) ;

ثم نفذ البرنامج وإضغط زر الأوامر تحصل على صندوق رسالة كما بالشكل 16-11 ، وتوجد عدة دوال وماكروز لمتابعة هذا النوع نعرضها فيما بعد :

1- الدالة

AFX Message Box ( )

2- الماكرو

ASSERT ( )

3- الماكرو

ASSERT - VALID ( )

4- الماكرو

VERIFY ( )

5- الماكرو

TRACE

2. الماكرو ASSERT

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

1 : Class Cwin *ptr = AFX Get APP ( ) ;

2 : ASSERT (Null = = ptr) ;

فى السطر رقم 1 يتم استدعاء الدالة AFX Get App ( ) ووضع النتيجه فى المؤشر ptr.

فى السطر رقم 2 يختبر الماكرو ASSERT قيمه المؤشر ptr فإذا كانت Null يظهر الماكرو رساله بالملف ورقم السطر الموجود فيه هذا الماكرو وبالتالى يعرف المبرمج مكان الخطأ.

3. الماكرو ASSER-VALID ( )

يستخدم هذا الماكرو لإختيار مؤشر هدف من فصيلة فإذا كانت قيمة المؤشر صفر يظهر الماكرو رسالة تشخيص لهذا الخطأ.

4. الماكرو VERIFY ( )

يشابه الماكرو ASSERT حيث يختبر تعبير معين فإذا كانت صفر تظهر رساله وينهى البرنامج ، ولكن يختلف الماكرو VERIFY فى أنه فى حاله تشغيل البرنامج فى حاله الأمان (Release Mode) يمكن أن تظهر رسالة الخطأ ولا ينتهى البرنامج.

5. الماكرو TRACE

يشبه الداله AFX Message Box ( ) فى إمكانيه إظهار رسالة ، ولكن يختلف فى غمكانيه التعامل مع بيانات مختلفه النوع ، فيمكن التعامل مع بيانات صحيحه أو حقيقيه أو غير ذلك كما فى السطر التالى :

TRACE (“M = %d, V = %d, I = %d”, M,V,I) ;

فى هذا السطر يتم إظهار قيم المتغيرات M,V,I وهذا غير مسموح به مع الداله AFXMessageBox ( ).

مع ملاحظه أن نتيجه الماكرو TRACE تظهر فى الجزء الأسفل من شاشه VC++ بشرط أن يعمل البرنامج فى حاله التصحيح debug Mode ، ويتم تشغيل البرنامج فى حاله التصحيح بإختيار Bulid من القائمه الرئيسيه ثم debug ثم Go جرب ذلك وشاهد النتيجه.

3. الخطأ المنطقى Logic Error

هو عبارة عن خطأ فى نتائج البرنامج ، ويرجع إلى خطأ فى خط سير البرنامج أو فى أحد معادلات البرنامج ، ولا يكتشف أثناء الترجمة ولا التنفيذ ولكن يكتشف من النتائج ، ويعتبر هذا النوع من أصعب الأنواع حيث يحتاج لطرق لمعرفه سبب هذا الخطأ وخاصة إذا كان البرنامج كبير ، وتتوفر هذه الطرق فى بيئه برنامج VC++ تحت الاسم debugger ، حيث يوفر برنامج VC++ الطرق التاليه :

1. تنفيذ البرنامج خطوه بخطوه (سطر سطر).

2. تنفيذ البرنامج حتى موضع معين.

3. وضع نقاط قطع (break Points) داخل سطور البرنامج.

يتم الإنتقال بينها عند التنفيذ.

4. متابعة قيمه متغير (أو متغيرات) أثناء التنفيذ.

ويتم استعمال هذه الطرق وطرق آخرى من خلال قائمه debug أو من خلال شريط الأدوات الخاص بقائمه debug.

لإظهار قائمه debug افتح ملف برنامج من البرامج السابقه ومن الاختيار Bulid اختار debug ثم Go يتم تنفيذ البرنامج فى حاله التصحيح مع ظهور قائمه debug كما بالشكل 16-11.

clip_image016

ويتم إظهار شريط أدوات الـ debug بإختيار View ثم Toolbars ثم اختيار خانة debug فتحصل على شريط الأدوات كما بالشكل 16-12.

ونفس الوظائف التى تحققها قائمه اختيارات debug يمكن تحقيقها من شريط الأدوات ، وفيما يلى عرض لهذه الوظائف.

الاختيار

الوظيفه

Restart

يعيد تنفيذ البرنامج من البداية بعد تنفيذ بعض عمليات debugging.

Stop debugging

ينهى عمليه التنفيذ داخل بيئه التصحيح.

Step into

ينفذ البرنامج سطر سطر.

Step Over

ينفذ البرنامج بحيث يشكل بين البرامج الفرعيه.

Run to Cursor

ينفذ البرنامج حتى موضع المؤشر.

Qick Watch

لمعرفة قيمة متغير من متغيرات البرنامج.

Watch

إضافة متغير لمتابعة حالته.

Variable

معرفة قيم المتغيرات الموجودة بالبرنامج.

Registers

عرض حاله (قيم) مسجلات المعالج.

Memory

عرض حالة الذاكره وما بها من قيم.

Disassambly

عرض سطور البرنامج بلغة التجميع (Assembly).

جرب هذه الاختيارات ولاحظ نتيجه تنفيذ كل إختيار.

التسميات: