![]() |
|
الدرس الحادي عشر - الإنتظار في البرنامج - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة بناء برنامج لإدارة السوبر ماركت من الألف إلى الياء (http://vb4arb.com/vb/forumdisplay.php?fid=128) +---- الموضوع : الدرس الحادي عشر - الإنتظار في البرنامج (/showthread.php?tid=5699) |
الدرس الحادي عشر - الإنتظار في البرنامج - RaggiTech - 15-10-12 كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته . الانتظار في البرنامج .
من المناسب دائماً تحسب تضخم قاعدة بيانات البرنامج ، وما ينتج عنها من بطء في الاستخدام ، وبالتالي ضرورة البحث عن أوامر أقل جهداً على المعالج ، وفي حال الضرورة نبحث عن وسيلة لانتظار انتهاء العملية .
لادراك ذلك قم بنسخ السجلات الموجودة في قاعدة البيانات والخاصة بالبضاع حتى يصبح العدد 1000 بضاعة مثلاً . إذا لم يكن حاسبك سريعاً فسوف تلاحظ بطء العرض ووجود فترة انتظار تتراوح بين ( 2 ثانية للكومبيوتر السريع - 15 ثانية للجهاز البطيء ) ، كما أن عليك دائماً توقع الأسوء خصوصاً وأن هذا البرنامج موجه إلى سوبر ماركت ( جهاز كومبيوتر متواضع غالباً ) . من أجل ذلك سوف نظهر للمستخدم أثناء فترة التحميل رسالة انتظار ، ولنصمم فورم بسيط جداً يحتوي على رسالة ( الرجاء الانتظار قليلاً ) . ايضاً قم بالضغط على Ctrl+T لتظهر لك شاشة الأدوات ... اختر منها Microsoft Windows Common Coontrol 6.0 ، ثم ارسم الاداة ProgressBar على الفورم . لا تنس أن تخفي CntrolBox الخاصة بالفورم وأن يظهر في المنتصف . أخيراً اجعل اسم الفورم Frm_Wait . سوف نستخدم هذا الفورم منذ الآن ليظهر في جميع العمليات التي قد يوجد بها بعض التأخير . وأول عملية سوف نطبق عليها هذا الفورم هي Refresh_Me . بعد أن نتأكد من أن RecordCount <> 0 سوف نظهر هذا الفورم بتعليمة Show وبنهاية الامر سوف نخفيه بواسطة Unload Frm_Wait . والآن جرب البرنامج ... لو لاحظت حتى الآن لم نتعامل مع أداة ProgressBar وقبل البدء في التعامل معها سوف نذكر ببعض الخصائص المهمة لهذه الأداة . Scrolling
: وتحدد أسلوب العرض .
Max
: وتحدد القيمة القصوى للشريط .
Min
: وتحدد القيمة الصغرى ... غالباً 0 .
Value
: وتحدد القيمة الحالية للشريط .
والآن سوف نرى ما هي القيم التي نحتاج إليها في الكود .
العملية التي سنحتاج إلى اظهار هذه الشاشة فيها هي عملية تعبئة الجدول حيث أنها تأخذ الوقت الأكبر . ولذا : Max
= عدد السجلات .
Min
= صفر .
Value
: تأخذ قيماً من 0 وحتى عدد السجلات حسب رقم السجل الحالي .
لن نتأخر في الشرح كثيراً وسنبدا في الكود مباشرة . في Frm_Show وبعد أن تظهر Frm_Wait مباشرة قم بكتابة . كود : Frm_Wait.Showكود : Frm_Wait.ProgressBar1.Value = Frm_Wait.ProgressBar1.Value + 1السطر الأول واضح لكن السطر الثاني يعطي فرصة للمعالج لكي يقوم بعملية الزيادة - جرب ازالتها ولاحظ الفرق - . بنهاية هذا الدرس يصبح حدث Form_Load بالشكل التالي : كود : Private Sub Form_Load()كود : Sub Refresh_Me()والله الموفق ...
والسلام عليكم ورحمة الله وبركاته . |