|
#1
|
||||
|
||||
الدرس الثاني عشر : بعض مبادئ الإختبار والتحسين - دورة CSharp 2005
كود PHP:
وهنا الخطأ , المفترض أن نختبر نتيجة نافذة الألبومات , فإذا كانت "موافق" ينفذ كود تغيير قائمة التشغير وبالتالي يجب أن نضيف للكود السابق عبارة if لإختبار ناتج النافذة قبل تنفيذ تعليمات التغيير في قائمة التشغيل هناك خطأ آخر هنا في السطر الرابع : كود PHP:
سيتغير نفس الشيئ في قائمة albume في النافذة الألبومات والعكس صحيح أيضاً وهذا يعتبر خطأ لأنه من المفترض أن تكون كل قائمة مستقلة عن الأخرى , والمفروض أن لا نعمل مساواة بين القائمتين وإنما نسخ عناصر القائمة في هذه النافذة إلى القائمة في النافذة الآخرى , والنسخ غير المساواة المساواة تعني أن كلا النافذتين تحمل نفس القيمة دائماً فإذا ساويت بين قائمتين ثم عدلت في أي منهما فإن الأخرى بالضرورة ستتعدل تلقائيا أما النسخ فإذا نسخت قائمة من أخرى وعدلت في أي منها فإن الأخرى لا تتأثر لأنهما مستقلتان عن بعض وهذا ما نحتاجه هنا , و النسخ في القوائم يتم عبر الإجراء AddRange كما شرحناه سابقاً وبالتالي فالمفروض إستبدال السطر الرابع بهذا السطر : كود PHP:
كود PHP:
لأن ناتج النافذة هي الموافقة وبالتالي نريد مساواة بين قائمة نافذة الألبومات التي قمنا بالتعديلات عليها والقائمة في النافذة الرئيسية وكمثال آخر على هذا النوع من الأخطاء شغل التطبيق وانقر على زر ملئ الشاشة دون تشغيل ملف صوتي ستظهر رسالة خطأ ويتوقف البرنامج عنم العمل , لأنه لا يوجد فيديو حتى يجعله ملئ الشاشة ولحل هذه المشكلة أذهب إلى كود زر ملئ الشاشة , وأضف جملة try : كود PHP:
وهي الأخطاء التي لا تنتج عن خطأ في الكود وإنما تنتج عن نقص في وظائف التطبيق أي أن التطبيق لا يحقق جميع الوظائف المطلوبة من المستخدم , ويتم حل هذه المشكلة بالتحديث Updating وهذه التحديثات عادة ما تتكرر من إصدار لآخر في التطبيق كمثال على هذه الأخطاء في تطبيقنا : المستخدم عادة ما يفضل طريقة لإختيار سريع للألبوم الذي يريد تشغيلة وفي تطبيقنا لا يمكن إختيار الألبوم إلى بفتح نافذة الألبومات , وهذا يعد نقصاً في متطلبات المستخدم لذلك يجب التعديل في البرنامج لعمل قائمة منسدلة لإختيار الألبوم في نافذة التطبيق الرئيسية نحتاج لذلك إلى كائن من نوع XmlDocument ولذلك يجب إضافة عبارة using كما فعلنا في نافذة الألبومات ثم نعرف متغير عام إسمه doc من نوع XmlDocument تحت تعريف القائمة albume كما فعلنا في نافذة الألبومات إفتح تصميم النافذة الرئيسية , ومن صندوق الأدوات إسحب كائن القائمة المنسدلة إلى النافذة الرئيسية فوق قائمة التشغيل وقم بتغيير الخاصية Name إلى ac و الخاصية Text إلى "إختر الألبوم" يجب تحميل أسماء الألبومات بمجرد فتح البرنامج , لذلك سنكتب شفرة تحميل أسماء الألبومات في حدث تحميل النافذة كما فعلنا في نافذة الألبومات افتح تصميم النافذة الرئيسية و انقر مزدوجاً على مكان فارغ في النافذة لتذهب إلى كو تحميل النافذة MainForm_Load أو Form1_Load إنسخ هذا الكود بين الحاصرتين : كود PHP:
نحتاج لقراءة ملفات الألبوم المحدد إلى إجراء ReadAlbume الموجود في نافذة الألبومات إنسخ كود الإجراء ReadAlbume إلى شفرة النافذة الرئيسية وتأكد من أنه خارج أي إجراء آخر : كود PHP:
إذهب إلى تصميم النافذة الرئيسية وانقر مزدوجاً على كائن القائمة المنسدلة ac لتذهب إلى الشفرة واكتب بين الحاصرتين كود إستدعاء إجراء قراة ملفات الألبوم : كود PHP:
والسطر الرابع يقوم بإستدعاء الإجراء FillList لتحميل عناصر albume إلى قائمة التشغيل والسطر الخامس يقوم بتحميل أول عنصر من عناصر القائمة والسادس يضبط شريك التنقل و السابع يشغل الملف .. 3- أخطاء في الواجهات وهي الأخطاء التي لا تؤثر على عمل البرنامج ولكن تؤثر على الواجهات الصورية للنوافذ وهذه الأخطاء عادة ما يتم حلها بواسطة التحديثات Updating كمثال على هذه الأخطاء من تطبيقنا : إفتح التطبيق , وانقر على زر تكبير النافذة في شريط العنوان ستلاحظ أن جميع كائنات النافذة محصورة في الزاوية العليا اليسرى من النافذة حيث أن تكبير النافذة لم يقم بتعديل حجم و أماكن الكائنات ولحل هذه المشكلة سنستخدم خاصية واحدة في جميع الكائنات : Anchor معنى الكلمة "المرساه" ومن معناها يتبين لنا وظيفتها حيث تقوم بربط الكائن بأحد جوانب النافذة أو بعدة جوانب فمثلاً لو ربطت كائن قائمة التشغيل بيمين النافذة , وقمت بتكبير النافذة فستلاحظ أن مكانها تغير وإنزاح نحو يمين النافذة أما إذا ربطت أي كائن بجانبين متعاكسين , كأن تربط شريط التنقل بيمين ويسار النافذة وقمت بتكبير النافذة ستلاحظ أن حجم شريط التنقل قد تغير لأنه مرتبط بإتجاهين متعاكسين وهذا يؤدي إلى "مط" الكائن إذهب إلى تصميم النافذة الرئيسية , وإختر الكائن الحاضن للفيديو "شاشة الفيديو" وغير خاصية Anchor إلى Top, Bottom, Left, Right لاحظ أنا ربطنا كائن الشاشة بجميع جوانب النافذة وبالتالي فحجمها سيتمدد في جميع الجهات ولكن المسافة بين نهاية الكائن وطرف النافذة من الأربع الجهات لن يتغير إختر صندوق "طريقة التشغيل" وغير الخاصية anchor إلى : Bottom, Right زر التحكم بالألبومات : Bottom, Right القائمة المنسدلة لإختيار الألبوم : Top, Right قائمة التشغيل : Top, Bottom, Right شريط التنقل : Bottom, Left, Right أزرار التشغيل : Bottom, Left الآن شغل التطبيق , وجرب تغيير حجم النافذة ستلاحظ أن الكائنات تغير من حجمها و مكانها بحسب حجم النافذة أيضاً كمثال على هذه الأخطاء , شكل شريط التنقل الكبير , والمشوه لحل مشكلة شكلة الكبير سنلجأ إلى خدعة صغيرة : سنقوم بتغطية جزء كبير منه فوق وتحت شريط الوسط وذلك بإستخدام كائن النص الثابت Label , إفتح تصميم النافذة الرئيسية ومن صندوق الأدوات إسحب كائن Label مرتين وقم بتغيير الخاصية BackColor في كليهما إلى Transparent من تبويب Web وإحذف أي كلمة أمام خاصية Text ثم قم بتغطية الأجزاء الزائدة من شريط التنقل ولا تنسى أن تغير الخاصية Anchor فيهما كما هي في شريط التنقل أيضاً يمكن أن تغير أيقونه التطبيق بإختيار النافذة الرئيسية وتغيير الخاصية Icon لتضيف لمسة إحترافية على التطبيق قم بتغيير الصور على الأزرار من خلال الخاصية Image وتغيير خلفية النافذة من خلال الخاصية BackGroundImage ملاحظة : هناك خطأ برمجي في بيئة تطوير ميكروسوفت وهو أن خلفية النافذة لا تظهر إذا كانت الخاصية RightToLeft تساوي True سيبدو شكل التطبيق بعد هذه التعديلات هكذا : الواجب إختبر التطبيق وصحح أي أخطاء برمجية أخرى .نهاية الدرس الثاني عشر.
|
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
الدرس الثامن : المصفوفات والقوائم - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-22-2010 03:47 PM |
الدرس السابع : التنقل في ملف الميديا - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-22-2010 03:37 PM |
الدرس الرابع : الإجراءات والدوال - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-19-2010 03:39 PM |
الدرس الثالث : الجمل الشرطيه - دورة CSharp 2005 | microtop | دورة CSharp 2005 من منتديات المشاغب | 1 | 03-16-2010 06:19 PM |
الدرس الثاني : المتغيرات - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-12-2010 03:56 PM |