![]() |
|
كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم دورات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=187) +--- الموضوع : كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] (/showthread.php?tid=30160) |
كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] - elgokr - 05-07-19 تحدثنا فى الموضوع السابق عن كيفية تهيئة وتحديد مسار التثبيت وكذلك خيارت الاختصارات
ومن خلال الدرس السابق تمكنا من عمل اكواد تحديد المساحة الكلية للدريف
وكذلك المساحة المطلوبة ان تكون متاحة لاتمام تثبيت البرنامج وكذلك المساحة المحببة لعمل البرنامج
وقمنا بانشاء بانشاء خيارات فى Settings لاتمام تسجيل حالة خيارات اختصار سطح المكتب وكذلك قائمة ابداء
وكان يوجد خيار الثالث وهو تخطى شاشة خيارات التثبيت لاتمام تحديد البرامج
التى سيتم اختيارها من عدمه لاتمام تثبيتها مع البرنامج ولكن فى هذا الدرس
سيتم شرح هذه الشاشة حيث اذا لم يتم تخطيها الى ان يتم شرح فى درس قادم
كيفية عند اتمام تخطي هذه الشاشة اتمام التثبيت بالبرامج المختارة افتراضياً
الان صورة من الدرس السابق لتوضيح المطلوب اتمامه فى تلك الشاشة
لاتمام عرض الشاشة المطلوبة خاصة هذه المرحلة من الدرس اليك صورة توضيحية
عند اتمام الامر سيتم عرض هذه الشاشة والتى من وظيفة هذا الدرس
اتمام تصميمها وشرح كيفية العمل عليها ولكن فى البداية احب ان اوضح نقطة مهمة
وهو الخيارات من البرامج المدرجة فى هذه الشاشة ليس الزامي ولكن فكرياً وكل الامر علك
هو تحديد البرامج التى تتطلب برنامجك تثبيتها على جهاز العميل حتى يعمل بدون ادنى مشكلة
اذا كان من مكتبات او برامج او ما شبه من هذا الامر هنا انت من تقوم بتحديد البرامج الازامية التى يتطلب جهاز المستخدم
تواجد تلك البرامج الزامياً لاتمام عمل برنامجك بدون ادنى مشكلة طيب ياتى هنا سؤال مهم جداً !!!
سؤال: بما ان البرامج فى هذه الشاشة الزامية تثبيتها فلماذا اتيح للمستخدم حرية الاختيار فى تثبيت هذه البرامج او لا ؟ جواب: الاجابة بسيطة جداً احياناً يكون الجهاز مثبت مسبقً كل من تلك البرامج المطلوبة فهنا يقوم المستخدم بتجنب تثبيتها وهنا سيساعد فى تقليل الوقت بسبب تثبيت البرامج وكذلك لعدم تسبب مساكل فى الاعدادات او التراخيص وما شبه للبرامج التى تطلب التفعيل طيب ناتى الان الى الشاشة هذا الدرس لنطلع عليها
ومن ثم يتم شرح كل جزء بها والاكواد التى سيتم استخدامها بهذه الشاشة
صورة شاشة درس اليوم
لو نلاحظ هنا تم عمل عدد 6 خيارات من تحديد البرامج
وتم تنشيط عدد 3 برامج متطلب عملية التثبيت ولكن
البرامج التى تم درجها هنا فى هذه الشاشة للشرح ما هى الا عملية تمثل عن الفكرة
بمعنى لا تقوم بتطبيق والزام نفسك بعمل بمقل ما اقوم به فى الشرح
ولكوني لم اقوم بعمل برنامج لدي رئيسي واعلم ما هى متطلباته لذلك
قمت بعمل هذا كمثال لتوضيح كامل الفكرة وليس اكثر
طيب تعال مع بعض اقول انا عملت برنامج لنقول عليه ضخماً نوعاً ما
حيث جعلت البرنامج يدعم اكثر من نوع من قاعدة البيانات حيث يعمل على
Access و Sql Server وكذلك Mysql Server .. الخ
وكذلك جعلت البرنامج يدعم اكثر من نوع من التقارير منها التقارير الافتراضية
وهو Microsoft Report View و ايضاً الـ Crystal Reports
فهنا هذه الشاشة مطلوب تثبيت جميع البرامج التى بها
كما ذكرت اننى جعلت البرنامج الذى لدي يدعم كل شئ داخل البرنامج
ولكن السؤال هنا انا كا مستخدم عند تحديد نوع قاعدة البيانات
فهنا سيكون البرنامج يعمل على نوع واحد بالنهاية والتحديد هنا
يرجع لسبب حالة وامكانيات الجهاز المستخدم عليه البرنامج
وكذلك حجم العمل والكيان وعدد المستخدمين على البرنامج
فانا الان سامثل نفس العميل الذى قمت بشراء البرنامج
ولكن انا فقط من سيقوم باستخدام هذا البرنامج وليس متعدد المستخدمين
وكذلك حجم البيانات التى سيتم ادخالها فى قاعدة البيانات بسيطة وليس بحجم كبير
طيب الان بما اننى بهذا الامر فهنا ساسهل الحال على نفسى واقوم باختيار قاعدة بيانات الـ access
ناتى الان الى المرحلة الثانية وهو تحديد نوع التقارير التى اريد استخدامها
فانا كعميل ليس لدي فكرة عن ايهم الافضل وايهم يجب عليا استخدامه فساقوم باقوم باختيار كلاهما للتثبيت
فعند عرض التقرير ساقوم بتحديد النوع عند العرض والطباعة ومن ثم اري ايهم افضل لى
بينما اذا كنت اعلم ايهم الافضل فانا عنا ساقلل من حجم مساحة البرامج لتثبيته
الان يبقي معى الخيار الاخير وهو مكتبة الـ .net
الامر هنا سيتطلب على المبرمج عمل نقاط مهما سيتم شرحها نظرياً فى هذا الدرس
حتى يتم عمل موضوع لها مخصص وتوضيح الشرح بالاكواد وتفاصيل اتمام الامر
الان انا كا مستخدم حتى يعمل لدي البرنامج
وخصوصاً اذا كان البرنامج يستخدم هذه المكتبة بشكل كبير واساسى فى البرنامج
وان البرنامج ليس على بيئة الاصدار 2 فهنا سيكون هذا الخيار اجبارى
حتى اذا قام المستخدم بعدم تنشيطة لاتمام التثبيت فهنا تظهر له رسالة بعدم تمكنه من عدم تنشيط هذا البرنامج
طيب امتى بضبط اجعل هذا الخيار بامكانه عدم تنشيطه سيكن فى حالة واحدة فقط وهو عمل كود تحقق
بان الجهاز عليه بالفعل هذا البرنامج مثبت مسبقاً وهل الاصدار المثبت هو نفس الاصدار المطلوب وما اعلى ام لا
فهنا يمكنك ان تتيح للمستخدم من تنشيط وعدم تنشيط تثبت البرنامج
طيب تعال نشوف كدة شكل الشاشة بعد اتمام
اختيارات الخيارات التى تم ذكرها بالاعلى كونى كا مستخدم
صورة توضيحية للشاشة
سنلاحظ بان اى برنامج غير محدد يحول لونه الى اللون الفضي
بينما اى برنامج يتم تحديده يتم تحديد اللون الافتراضي المخصص له
الى هذا الجزء سيتم شرحه فى الاسطر القادمة اكواداً وعدد الادوات التى تم استخدامها فى هذه الشاشة
الى ان يتم شرح فى درس قادم الخطوات التالية بامر الله
صورة الشاشة هذا الدرس مجدداً
الادوات التى تم استخدامها فى هذه الشاشة:
1- عدد 11 من اداء CheckBox. 2- عدد 28 من اداء Label. 3- عدد 13 من اداء Panel. 4- عدد 1 من اداء PictureBox. 5- عدد 9 من اداء TableLayoutPanel. ناتى الان الى الجزء الرئيسي يتطلب التركيز عليها حيث سيتم اضافة Setting
تابعة وخاصة لهذا الشاشة كما تم فى الدرس السابق للشاشة السابقة
سبق فى الدرس السبق وتم اضافة كما فى الصورة التالية
كل الامر سيتم اضافة حاجة من الاثنين
اما هو اضافة عمود واحد فقط يشمل كل البرامج التى سيتم تذكرها فى هذه الشاشة
أو ان اجعل عن كل برنامج عمود خاص به فلست اعلم ايهم اختار لكم لكونى اريد تبسيط وتسهيل فهم الامر
وحتى لا يتم تشتيت الامر المطلوب ساقوم بعمل شرح لكل برنامج عمود
ولعل فى الدروس القادمة فى تطوير وتسحين هذه الدورة اوضح كيفية جعلها فى عمود واحد
وكيفية تحسين وتقليل الاكواد بصورة كبيرة بقدر المستطاع
الان متطلبات الاضافة التى سيتم اضافتها فى Settings ستكون كالتالي
1- اضافة عمود باسم NetFW من نوع Integer بقيمة افتراضية 0. 2- اضافة عمود باسم SqlServer من نوع Integer بقيمة افتراضية 0. 3- اضافة عمود باسم SAPcr من نوع Integer بقيمة افتراضية 0. 4- اضافة عمود باسم ReportView من نوع Integer بقيمة افتراضية 0. 5- اضافة عمود باسم Access من نوع Integer بقيمة افتراضية 0. 6- اضافة عمود باسم MySql من نوع Integer بقيمة افتراضية 0. صورة توضيحية للشكل بعد اتمام الاضافة
خطوات شرح اضافة ما ذكر فى Settings راجع الدرس السابق
بعد اتمام هذه المرحلة ناتى للخطوات التالية لاستكمال عمل الشاشة
فى البداية كود تحريك الشاشة
طبعاً انا شرحت الفكرة من الكود ووظائفها وكيفية التعامل معها فى الدرس الاول
لذلك سيتم وضع الكود هنا فقط حتى يتم تسهيل نسخ الكود للاستخدام من نفس الموضوع
دون الحاجة الى الرجوع الى الدرس الاول الا اذا كنت لم تعلم كيفية الاستخدام والتعامل مع الكود
فعليك بالعودة للدرس الاول مجدداً لتتمكن من معرفة كيفية استخدام الكود وكيف التعامل معه
الكود المستخدم يتم اضافة كلاً من كود : Private MoveForm As Booleanومن ثم وضع الاكواد التالية كما هو مشار لكل حدث كود : Private Sub MoveForm_MouseDown(sender As Object, e As MouseEventArgs) Handles Panel2.MouseDownبعد الانتهاء لكود تحريك الشاشة
ناتى الان الى الكود الاغلاق لزر X الموجود باعلى الشاشة كود : Application.Exit()الخطوة التالية وهو كود التعامل مع كل اطار / زر لتنشيط تثبيت البرامج
ولعمل هذا الكود عن كل اطار / زر سيتم عمل عدد 3 حدث لاتمام تنفيذ الامر
كما هو موضح بالكود التالى كود : Private Sub Panel8_MouseHover(sender As Object, e As EventArgs) Handles Panel8.MouseHover, CheckBox7.MouseHover, Label10.MouseHover, Label11.MouseHover, Label13.MouseHoverالحدث الاول وهو لعملية حركة المؤشر الفارة بداخل الاطار
لاتمام تغيير اللون طبقاً لحالة الاطار نشط او غير نشط
الحدث الثاني وهو عكس ما سبق وهو عند خروج المؤشر الفارة من داخل الاطار
ليقوم باعادة اللون الافتراضي الذى كان عليه طبقاً لحالة الاطار
الحدث الثالث وهو عند الضغط على الاطار / الزر
ليقوم بعملية التنشيط وعدم التنشيط لاتمام تثبيت البرنامج المطلوب
الان بعد اتمام شرح كود الاطار الواحد سيتم هنا
ادراج الكود كاملاً لكل الاطارات التى تم استخدامها فى الشاشة
كود : Private Sub Panel8_MouseHover(sender As Object, e As EventArgs) Handles Panel8.MouseHover, CheckBox7.MouseHover, Label10.MouseHover, Label11.MouseHover, Label13.MouseHoverاذا قمنا بمراجعة الاكواد التى تم ذكرها بالاعلى خاصة الاطارات لحالة تنشيط البرامج
سنجد هذا السطر فى حدث الكلك عن كل اطار كود : CheckBox11.Checked = Not CheckBox11.Checkedطيب ايه فطرة هذا الكود بضبط
لتسهيل الامر تعال نشوف الكود التالى كود : If CheckBox11.Checked Thenلو تلاحظ هذا الكود هو شرط تحقق لقيمة لتنفيذ قيمة
وفى الدرس السابق تحدثنا كيفية التعامل مع مثل هذه الامور فى التحقق
حيث يمكننا تقليل الامر ليصبح بهذا الشكل كود : CheckBox11.Checked = IIf(CheckBox11.Checked, False, True)طيب بما ان الثلاثة هنا المقصود بها واحد
وان الفكرة من الامر هو عمل انعكاس للقيمة / عكس القيمة
فكل الامر تم تجنب امر التحقق ليتم تنفيذها بهذا السطر فقط كود : CheckBox11.Checked = Not CheckBox11.Checkedوكلمة Not المستخدمة هنا تعنى الرفض او العكس
فهنا كانى بقوله اجعل قيمة CheckBox11 تساوى عكس كيمته الحالية
بعد اتمام كل ما سبق كل ما سنحتاج اليه
هو كود لحدث زر السابق / Back
كل ما عليك وضع الكود التالى بداخل حدث الزر السابق / Back كود : Form3.Show()والى درس قادم استودعكم الله الذى لا اله الا هو
واتمنى من الجميع ان يسامحنى اذا قصرت فى الشرح
ولكون هذا الدرس تاخر بعض الايام بسبب بعض ظروفى وضغط الوقت لدي
فاى تقصير فى الشرح او نقص فى توضيح اى جزء
الرجاء ذكره وساقوم بتوضيح اى نقطة واى جزء غير مفهوم بامر الله
ملحوظة: مرفق بهذا الموضوع السورس الكود للمشروع الذى تم شرحه حتى اخر جزء من هذا الشرح
مع نسخة من البرنامج ليعطى تجربة لكيفية المظهر والاداء عند فتح البرنامج وعمل اخر شاشة تم شرحها
كما سيتم ارفاق الصور المستخدمة بهذا الموضوع
صورة متحركة توضح عمل البرنامج ابدتاء من شاشة الرخصة حتى شاشة هذا الدرس ( صورة غير مرفقة )
تحياتى لكم جميعاً
وتمنياتى لكم التوفيق الدائم
RE: كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] - asemshahen5 - 05-07-19 جزاك الله كل خير و مشكور على هذا الشرح . RE: كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] - elgokr - 05-07-19 (05-07-19, 05:53 PM)asemshahen5 كتب : جزاك الله كل خير و مشكور على هذا الشرح . لى ولك وللجميع بامر الله
تحياتى لك
وتمنياتى لك التوفيق
RE: كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] - عبد العزيز البسكري - 05-07-19 السلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك و جزاك خير الجزاء
تحياتي و تقييماتي
RE: كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] - elgokr - 05-07-19 (05-07-19, 08:15 PM)عبد العزيز البسكري كتب : وعليكم السلام ورحمة الله وبركاته
لى ولك وللجميع بامر الله
اخى الفاضل عبد العزيز البسكري
تحياتى لك
وتمنياتى لك التوفيق
|