تقييم الموضوع :
  • 2 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[مقال] إنشاء Help file لبرنامجك
#1
السلام عليكم ورحمة الله وبركاته


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

في هذا المقال سنتكلم عن نوع من انواع (Documentary) - التوثيق

وهو الـ Help file، سنتعلم كيفية انشاء Help file وكيفية ربطه مع تطبيق Windows Forms

بسم الله ..










اجزاء المقالة :-

1- ماهو Help file
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 من البداية بنفسك :-




فعلا هذا متعب للغاية Angry ..


لكن لو قررت استعمال البرنامج الثاني ، فالامر سيصبح في غاية السهولة ، حيث انه يوجد محرر html احترافي وتوجد ستايلات عديدة ، وغيرها من الامور الرائعة التي ستجعلك تصنع ملف help بسهولة وراحة تامة :-



^ انظروا كيف ان الموضوع بسيط باستعمال هذا البرنامج ، الان صورة بعد عملية الCompling / الناتج النهائي :





لذلك في هذا الموضوع سنقوم فقط بالتعامل مع برنامج Helpinator الرائع . لكن في جميع الاحوال لابد من تحميل البرنامج الاول ، لان كما اسلفنا الذكر فإنه يحتوي على ال Complier الخاص ب ملف Chm. > صيغة ملفات Help









ثالثا:- كتابة ملف Help


حقيقا البرنامج سهل وبسيط ، ويمكنك التعرف على ميزاته بسهولة .. لذلك سأشرح الاساسيات فقط وسأترك لكم الباقي للتعرف عليه :










^ تحديد رقم الtopic مهم جدا ، عشان نقدر نربط الControl في البرنامج بهذا الTopic



الان سأقوم بكتابة بعض الtopics وبعدها سأقوم بتحويل الملف الى ملف help جاهز (chm)




في النهاية ، هذا هو الناتج النهائي Big Grin :-










رابعا :- ربط ملفات 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 ctlbool value)
        {
            
base.SetShowHelp(ctlfalse);
            if (
this.GetHelpKeyword(ctl) != string.Empty)
            {
                if (!
_controls.Exists(=> == ctl))
                {
                    
_controls.Add(ctl);
                    
ctl.KeyDown += new KeyEventHandler(ctl_KeyDown);
                }
            }
            else if (
this.GetHelpKeyword(ctl) == string.Empty)
            {
                if (
_controls.Exists(=> == ctl))
                {
                    
_controls.Remove(ctl);
                    
ctl.KeyDown -= new KeyEventHandler(ctl_KeyDown);
                }
            }
        }

        
void ctl_KeyDown(object senderKeyEventArgs e)
        {
            if (
e.KeyCode == Keys.F1)
                
Help.ShowHelp((Control)senderthis.HelpNamespaceHelpNavigator.TopicIdthis.GetHelpKeyword((Control)sender));
        }

    } 



3- عمل Build للمشروع :




وبعدها ستظهر لك الاداة المعدلة في صندوق الادوات ، قم باضافتها :-





بعد ذلك ، قم بتعيين مسار ملف ال Help في خاصية HelpNamespace :-




او من خلال الكود - مثلا لو حبيت تستورد ملف help موجود في نفس مجلد البرنامج :

PHP كود :
private void Form1_Load(object senderEventArgs 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 التي عملناها :












الخاتمة




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



شكرا للمتابعة وإلى اللقاء في مقالات اخرى ان شاء الله

تحياتي للجميع


انتهى


الملفات المرفقة
.rar   HelpFileTest.rar (الحجم : 79.81 ك ب / التحميلات : 142)
الرد }}}
#2
ماشاء الله موضوع روعة فعلاً
تم التقييم Wink
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة:
#3
(05-06-14, 09:20 PM)Omar Mekkawy كتب :
ماشاء الله موضوع روعة فعلاً
تم التقييم Wink

هنا vb4arb .. نقدم لكم الجديد دائما ...


تسلم ياغالي
الرد }}}
تم الشكر بواسطة: Omar Mekkawy
#4
الله يسلمك يالغالي مقال مهم واغلب البرامج العملاقة تستخدم ملفات توثيق ، شكرا لك من الاعماق.
الرد }}}
تم الشكر بواسطة: الشاكي لله
#5
السلام عليكم

بارك الله فيك فعلا مقال مهم ومحتاجين هكذا مقالات في منتدياتنا العربية

تحياتي لك
الرد }}}
تم الشكر بواسطة: الشاكي لله , Nonaa
#6
جديد X جديد
شكرا اخي محمد
اسئل الله تعالي ان يجزيك خير الجزاء علي هذه المجهودات
تم التقيم
الرد }}}
تم الشكر بواسطة:
#7
موضوع أكثر من رائع.

الله يجزيك خير أخوية محمد Smile


السلام عليكم
الرد }}}
تم الشكر بواسطة:
#8
وعليكم السلام وحرمة الله وبركاته
موضوع رائع كصاحبه
جزاك الله عنا كل خير
فاعلم أنه لا إله إلا الله
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  Create a Pdf file in C# with iText Sajad 8 5,698 20-07-23, 09:45 AM
آخر رد: ahamidn
  Make a text file a project resource Abu Ehab 2 2,287 15-01-18, 12:53 PM
آخر رد: Abu Ehab
  Compress file using GZipStream Abu Ehab 1 2,127 26-11-17, 01:40 PM
آخر رد: sendbad100
  Read/Write App.Config File with .NET 2.0 Abu Ehab 0 2,431 26-05-14, 12:04 AM
آخر رد: Abu Ehab

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم