05-06-14, 06:18 PM
(آخر تعديل لهذه المشاركة : 05-06-14, 10:21 PM {2} بواسطة الشاكي لله.)
السلام عليكم ورحمة الله وبركاته
عدنا لكم من جديد مع مقالة حلوة ومفيدة جدا لجعل برنامجك اكثر احترافية وروعة ..
في هذا المقال سنتكلم عن نوع من انواع (Documentary) - التوثيق
وهو الـ Help file، سنتعلم كيفية انشاء Help file وكيفية ربطه مع تطبيق Windows Forms
بسم الله ..
اجزاء المقالة :-
1- ماهو Help file
2-تحميل برنامج انشاء ملفات Help
3-كتابة ملف Help
4-ربط ملفات Help بالتطبيقات
5-ربط الControls بملف Help
2-تحميل برنامج انشاء ملفات Help
3-كتابة ملف Help
4-ربط ملفات Help بالتطبيقات
5-ربط الControls بملف Help
اولا :- ماهو Help file
كما نعرف ، ان اي منتج يتم تصنيعه .. لابد ان يكون هناك كتيب يشرح كيفية استخدام الجهاز . سواء كان ثلاجة ، مكيف ، موبايل ، تلفاز .. الخ ..
وهذا الكتيب يسمى User manual :
وهو نوع من انواع الثوثيق ، حيث ان هناك انواع كثيرة جدا ولفئات محددة ، فبالطبع توجد كتيبات اخرى مخصصة فقط للمصنعين ك (Bulid diagram (مخططات البناء) ، Wiring diagram (مخططات التسليك) وغيرها ... :
^ Wiring diagram
لكن في هذا المقال لن نتكلم عن مخططات التصنيع (البرمجة) التي تكون خاصة بك ، حيث ان لها موضوع اخر ان شاء الله ..
لكن سنتكلم عن المخططات او لنقل (كتيب) خاص للمستخدمين يشرح كيفية استخدام البرنامج (User manual) .
نحن نعرف ان الUser manual هو كتيب صغير ، لكن لو كان المنتج الكتروني هل سنقوم بطباعة user manual وارساله عبر البريد الى كل شخص يستخدم برنامجنا ؟؟؟
بالطبع لا .. فهذا مكلف للغاية ، لذلك ...
اغلبنا يعرف هذه الصورة :-
نعم انه Help file الذي يظهر عند الضغط على زر F1 لبرنامج ما ، حيث ان اغلب البرامج الاحترافية لديها Help file كأحد اساليب التوثيق
طبعا كما قلنا توجد طرق اخرى للتوثيق ، كنشر فيديهات تعليمية لإستخدام البرنامج ، مقالات وغيرها من الامور .
اذن عرفنا ماهو الـHelp file وسنتعلم في هذا الموضوع كيف نقوم بتكوينه وربطه ببرنامجنا ..
ثانيا :- تحميل برنامج انشاء ملفات Help
اولا عليك بتحميل وتثبيت برنامج HTML Help Workshop
كود :
http://www.microsoft.com/en-us/download/details.aspx?id=21138
يلزمك تثبيته لأنه يحتوي على الComplier الخاص بملفات Help .
بعد التثبيت ، الان لديك خيارين :
1- استخدام البرنامج المذكور في الاعلى لإنشاء Help file (مجاني)
2- استخدام برنامج Helpinator (مدفوع) - مستحسن
ملفات Help في الاساس تتكون من ملفات HTML .. لذلك لو قررت استخدام البرنامج الاول فعليك كتابة اكواد HTML من البداية بنفسك :-
فعلا هذا متعب للغاية ..
لكن لو قررت استعمال البرنامج الثاني ، فالامر سيصبح في غاية السهولة ، حيث انه يوجد محرر html احترافي وتوجد ستايلات عديدة ، وغيرها من الامور الرائعة التي ستجعلك تصنع ملف help بسهولة وراحة تامة :-
^ انظروا كيف ان الموضوع بسيط باستعمال هذا البرنامج ، الان صورة بعد عملية الCompling / الناتج النهائي :
لذلك في هذا الموضوع سنقوم فقط بالتعامل مع برنامج Helpinator الرائع . لكن في جميع الاحوال لابد من تحميل البرنامج الاول ، لان كما اسلفنا الذكر فإنه يحتوي على ال Complier الخاص ب ملف Chm. > صيغة ملفات Help
ثالثا:- كتابة ملف Help
حقيقا البرنامج سهل وبسيط ، ويمكنك التعرف على ميزاته بسهولة .. لذلك سأشرح الاساسيات فقط وسأترك لكم الباقي للتعرف عليه :
^ تحديد رقم الtopic مهم جدا ، عشان نقدر نربط الControl في البرنامج بهذا الTopic
الان سأقوم بكتابة بعض الtopics وبعدها سأقوم بتحويل الملف الى ملف help جاهز (chm)
في النهاية ، هذا هو الناتج النهائي :-
رابعا :- ربط ملفات Help بالتطبيقات :-
الان لو قررت تصميم Form بهذا الشكل :
[img]http://im49.gulfup.com/8EaOEV.jpg"> [/img]
واريد اذا قام المستخدم بالوقوف على احد الTextbox وضغط على F1 يظهر له Help window ..
يعني لو وقت المستخدم الtextbox الخاص بـ Last name وقام بالضغط على F1 ، يقوم البرنامج بفتح ال Help file التي عملناها ويقوم بفتح صفحة الLast name مباشرة:
لذلك يتوجب علينا اولا ربط ملف الHelp بالبرنامج ، ولفعل ذلك نستعمل اداة HelpProvider الموجودة في صندوق الادوات :
لكن انتظر ...
--
لن نقوم باستعمالها فعليا ، سنقوم باشتقاقها لإضافة بعض التعديلات عليها
السبب وراء ذلك اني بحثت لكن لم اصل لنتيجة تمكنني من فتح topic بواسطة الid تبعه
لذلك قررت تطويرها قليلا لتقوم بفتح topic معين بناء على رقمه .
--
لذلك ، الخطوات :-
1- اضافة ملف كلاس جديد :
2- لصق هذا الكود :
PHP كود :
class HelpProviderEx : HelpProvider
{
private List<Control> _controls = new List<Control>();
public override void SetShowHelp(Control ctl, bool value)
{
base.SetShowHelp(ctl, false);
if (this.GetHelpKeyword(ctl) != string.Empty)
{
if (!_controls.Exists(c => c == ctl))
{
_controls.Add(ctl);
ctl.KeyDown += new KeyEventHandler(ctl_KeyDown);
}
}
else if (this.GetHelpKeyword(ctl) == string.Empty)
{
if (_controls.Exists(c => c == ctl))
{
_controls.Remove(ctl);
ctl.KeyDown -= new KeyEventHandler(ctl_KeyDown);
}
}
}
void ctl_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F1)
Help.ShowHelp((Control)sender, this.HelpNamespace, HelpNavigator.TopicId, this.GetHelpKeyword((Control)sender));
}
}
3- عمل Build للمشروع :
وبعدها ستظهر لك الاداة المعدلة في صندوق الادوات ، قم باضافتها :-
بعد ذلك ، قم بتعيين مسار ملف ال Help في خاصية HelpNamespace :-
او من خلال الكود - مثلا لو حبيت تستورد ملف help موجود في نفس مجلد البرنامج :
PHP كود :
private void Form1_Load(object sender, EventArgs e)
{
//load .chm file from exe folder
helpProviderEx1.HelpNamespace = Application.StartupPath + "/help-vb4arb.chm";
}
وبذلك انتهينا من ربط ملف Help بالبرنامج ، بقي ان نقوم فعليا بربط الHelp بالTextbox .
خامسا:- ربط الControls بملف Help
الخطوات بسيطة جدا :-
1- اختيار الControl المراد عمل Help له :-
^ نقوم بوضع الContext id في خاصية Help Keyword
وهذا عبارة عن رقم فريد يشير الى الtopic ، حيث كما وضحت في ما سلف انه مهم ، ويمكنك معرفته كما هو ظاهر في الصورة التالية :-
خلااص هكذا ربطنا الTextbox الخاص ب Last name بالHelp
والان عليك ربط بقية الTextbox بنفس الطريقة ، فقط ضع رقم الTopic في خاصيةHelp Keyword
في النهاية هذا هو الناتج بعد ربط جميع الtextbox بالHelp التي عملناها :
الخاتمة
في المرفقات تجدون البرنامج مع السورس للتجريب .
شكرا للمتابعة وإلى اللقاء في مقالات اخرى ان شاء الله
تحياتي للجميع
انتهى