بعض مشاكل البرمجة بلغة الفيجوال بيسك وحلولها

الكاتب : ياسر اليافعي   المشاهدات : 644   الردود : 1    ‏2005-03-25
      مشاركة رقم : 1    ‏2005-03-25
  1. ياسر اليافعي

    ياسر اليافعي قلم فضي

    التسجيل :
    ‏2003-05-31
    المشاركات:
    3,727
    الإعجاب :
    0
    مما لا شك فيه أن لغة VB أصبحت من أكثر بيئات البرمجة شيوعا واستخداما وذلك يرجع

    لعدة أسباب منها:
    1- سهولة إنشاء التطبيقات بهذه اللغة.
    2-
    القدرة على إنشاء تطبيقات تفي بالغرض وتختصر الكثير من الوقت والجهد الذي ستصرفه

    في غيرها من لغات البرمجة المتقدمة.
    3- الدعم المستمر لها من قبل الشركة المصممة ( Microsoft ) .

    وربما كان لاستخدام VB في مجالات متعددة وطرق كثيرة ( مثل إنشاء برامج مستقلة أو

    تكامل بعض البرامج مع VBA أو بعض التطبيقات المعتمدة على الويب باستخدام IIS و

    DHTML ) ربما كلن لهذا اثر في ظهور الكثير من الأخطاء في كتابة الكود ..........

    وهذا في الواقع ما يعاني منه الكثير من مبرمجي هذه اللغة .........

    سوف نحاول في هذه الدروس إن شاء الله التعرف على معظم الأخطاء الشائعة في كتابة

    الكود وتصميم البرامج.......


    مقدمة لبناء البرامج:



    أول شيء يجب أن يفعله المبرمج هو ( التخطيط للمشروع أو البرنامج ) وربما كانت هذا

    أصعب شيء في بناء أي برنامج لذلك نجد الكثير من المبرمجين يغفلون عن هذه المرحلة

    ويبدءون مباشرة بالتصميم ولاشك أن بناء أي برنامج بهذه الطريقة يكون سببا لظهور

    الكثير من الأخطاء في البرنامج .....

    ما هي الأمور التي يجب أن تراعى في مرحلة التخطيط للمشروع ؟؟؟؟

    بشكل عام يجب على المبرمج أن تكون عنده إجابة أو خلفية عن مثل هذه التساؤلات :
    1- ما هو الهدف من المشروع ......
    2- ما هي الحدود التي يجب أن توضع له ...
    3- ما هي المؤسسة ( أو المستخدمين ) الذين سيقومون بالاستفادة من هذا المشروع ....
    4- ما هو الوقت المخصص لعمليات تصميم وإنشاء البرنامج ....

    هل تستطيع الإجابة عن هذه التساؤلات ؟؟؟

    إذا كانت إجابتك( نعم ) فهذا يعني انك جاهز للبدء في التصميم . وأما إذا كانت ( لا

    ) فأنصحك بأن تتروى قليلا إلى أن تعرفها .......


    تصميم واجهة الاستخدام : UI

    USER INTERFASE

    لعل هذا هو أول شيء يبدأ به المبرمج . وهو الجزء الذي يتمكن المستخدم من مشاهدته في

    التطبيق لذا كان من الضروري أن يصمم بشكل مناسب ... واليك بعض القواعد التي يمكنك

    إتباعها لبناء واجهة استخدام مناسبة:
    1- بساطة التصميم :

    هنا يجب أن يبقى ببالك دائما كمبرمج انك لست الوحيد الذي سوف يستخدم البرنامج لذا

    فإن واجهة الاستخدام لابد أن تكون واضحة في تصميمها من حيث تنسيق الأزرار وحقول

    البيانات مثلا ....


    2- الالتزام بالأوضاع العامة والأساسية

    :

    وحتى تتوضح هذه أكثر سأضرب بعض الأمثلة:


    أ- لا تضع زري OK و Cancel بهذا الترتيب داخل إحدى المربعات ثم تجعلها Cancel و Ok

    في مربع آخر ... بل حاول أن تلتزم بالوضع العام دائما ؟؟؟؟؟
    ب- العمل على تحديد مفاتيح الاختصار التي سيتم استخدامها في البرنامج ضمن أسس عامة

    ومعروفة مثلا .... Open = CTR +O .....
    ج- من الأفضل أن لا تتيح للمستخدم نقل عناصر التحكم أو تغيير حجمها أو ما شابه ذلك

    بل اجعل لمثل هذه العناصر أماكن ثابتة ......


    3- عدم استخدام ألوان كثيرة وغير مقبولة:



    فإذا كنت تنوي استخدام الألوان في تصميم واجهة الاستخدام فحاول التركيز على أن تكون

    واضحة ومؤثرة ولا بأس أن تعتمد على آراء بعض المبرمجين والمستخدمين ....

    وهذا كله يعتمد بشكل عام على نوعية البرنامج وفي هذه سيسعفك المخطط الذي وضعته

    لمشروعك عندما حددت فيه نوعي البرنامج ومستخدميه ....



    والخاصة انه يجب بناء واجهة استخدام مبسطة وواضحة تعطي انطباع الرضا من المستخدم ..

    لا التعقيد ...


    فن كتابة الكود:

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

    بتنسيق الكود والاعتناء به قدر الامكان وهذا يرجع بالكثير من الفوائد عليه ...

    واليك بعض القواعد الأساسية في تنسيق كتابة الاكواد:


    1- وضع المسافات بين اسطر الكود:

    وذلك لتقسيمها إلى مجموعات منطقية وهذه تعد أوضح طرق تنسيق الكود وإليك المقارنة

    التالية:

    مثال كود لم يتم تنسيقه:






    كود:
    
    
    
    
    If question = "Yes" Then
    
    
    
    
    
    For x = 0 To 100
    
    
    
    
    DoSomething = x * 186232
    
    
    If DoSomething > 3205420 Then
    
    
    
    
    MsgBox "You are here"
    
    
    
    
    
    Else
    
    
    
    
    MsgBox "You are there"
    
    
    
    
    
    End If
    
    
    
    
    
    Next x 
    
    
    
    
    
    Else 
    
    
    
    
    MsgBox "later"
    
    
    
    
    
    End If
    
    
    
    
    وهذا مثال لكود وإنما بطريقة منسقة ومرتبة:





    كود:
    
    If answer = "Yes" Then
    
    
    
    For x = 0 To 100
    
    
    
    DoSomething = x * 186232
    
    
    
    If DoSomething > 3205420 Then
    
    
    
    MsgBox "You are here"
    
    
    
    Else
    
    
    
    MsgBox "You are there"
    
    
    
    End If
    
    
    
    Next x 
    
    
    
    Else 
    
    
    
    MsgBox "later"
    
    
    
    End If
    
    
    



    فمن خلال وضع مسافات بين اسطر الكود تتمكن على الفور من مشاهدة كيفية تجميع البنية

    المنطقية. كما ستجد انه قد تم وضع نظام التكرار For – Next في النصف الأول من جملة

    If – Then..... وداخل نظام التكرار For – Next ستجد جملة If Then أخرى .....



    وأما بالنسبة للكود الذي لم يتم تنسيقه بهذا الشكل ستجد انه من الصعب أن تتمكن من

    تتبع سير البنية المنطقية. وبالتالي إذا تمت كتابة التطبيق بأكمله على هذا النحو

    فيمكنك أن تتصور الفترة التي سوف تستغرقها في اكتشاف أية أخطاء فيه والتمكن من

    معالجتها .....


    2- إضافة التعليقات إلى الكود:

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

    بكيفية عمل الكود ..... ولكن هذا لا ينصح به مطلقا لاسيما إذا كانوا مجموعة مبرمجين

    وليس شخصا واحدا ......

    شيء آخر مهم أيضا وهو إذا أراد الرجوع إلى البرنامج في المستقبل بغرض التطوير أو

    التعديل فإن هذه التعليقات سوف تساعده كثيرا ...... وحتى لو أراد إطلاع احد

    المبرمجين على كود البرنامج .. ترى هل سيتمكن من معرفة السبب وراء وضع إحدى الجمل

    في هذا الموضع على الأخص ؟؟؟ أم هل أنه يعتقد أن الكود الخاص به واضح للغاية لدرجة

    أنه لا يحتاج إلى إضافة تعليقات أخرى إليه ؟؟؟؟ .... أترك لك الإجابة والمقارنة

    .....


    3- استخدام طرق صحيحة لتسمية أنواع البيانات:

    غالبا ما يستخدم المبرمجون في تسميتهم للمتغيرات والدالات والأدوات أسماء تكون وفقا

    لما يعبر في أذهانهم في هذا الوقت , ويستكملون إنشاء برامجهم دون التفكير في

    العواقب التي قد تظهر نتيجة لتلك الأسماء التي قاموا باختيارها , وقد لا تكون هذه

    مهمة إذا كان القائمين على المشروع مبرمجا واحدا .... وأما إذا كانوا مجموعة

    مبرمجين فيجب أن يكون بينهم اتفاق على آلية معينة لمثل هذه التسميات , وهناك الكثير

    من الطرق لصيغ الاتفاق لابد وأنك اطلعت على بعضها ... بعض الأمثلة على ذلك:

    كود:
    Array = a ....... Data = dt .......Single =sgl
    
    
    
    Text = txt ...... Form =frm .... Check Box = chk
    
    
    كما إن عدم الترتيب الصحيح هنا في أسماء المتغيرات قد ينشئ الكثير من الخطاء واليكم

    هذا المثال البسيط ...



    هذا الخطأ شائع وهو يحدث مثلا عند وضعك عددا من المتغيرات في سطر واحد مثال ذلك:






    Dim nVar1, nVer2, nVer3, As Integer





    قد تعتقد هنا انه قد تم تخصيص نوع البيانات الخاص بالأعداد الصحيحة ( Integer )

    لكافة المتغيرات الثلاثة .... ولكن الحقيقة انه قد تم تحديد المتغير الأخير فقط

    (nVer3 ) كعدد صحيح وأما بالنسبة للمتغيرين الآخرين فقد تم تخصيص نوع البيانات (

    Variant ) لكل منهما .....

    والطريقة الصحيحة في تعريف هذه المتغيرات الثلاثة في سطر واحد تكون كالتالي:





    Dim nVar1 As Integer, nVer2 As Integer, nVer3 As Integer



    وأختم هذا الدرس بخطأ خفي نوعا ما ( على المبتدئين ) يكون عادة في تسمية المصفوفات

    التي تبدأ برقم صفر ( 0 ) :

    المصفوفة بشكل عام عبارة عن مجموعة من المكونات المعروفة التي يتم الوصول إليها من

    خلال اسم متغير معروف ....... كما يتم التعبير عن كل مكون عن طريق رقم يطلق عليه

    اسم فهرس ( Index ) , كما تبدأ مكونات المصفوفة بالرقم صفر ( 0 ) , وعند قيامك

    بتحديد المصفوفة الخاصة بك فستجد أنها قد تظهر على النحو التالي :






    Dim sStudentName(10) As String



    تقوم هذه المصفوفة بتحديد أن المتغير sStudentName سوف يشتمل على أحد عشر مكونا ...

    ولكن لماذا أحد عشر وليس عشر مكونات ؟؟؟؟

    حيث أن المصفوفة المصفوفة تبدأ بالرقم صفر, فاعلم انه سيتم تضمين هذا المكون في

    العدد الإجمالي للمكونات.... أي ستبدأ المصفوفة بالرقم صفر وتنتهي بالرقم ( 10 )

    ........

    قد تسأل عن أهمية معرفة هذا ...؟؟ حسنا ......

    عندما تعمل مع عناصر تحكم مثل مربعات القوائم ومربعات السرد ستكتشف أن كل مكون

    موجود داخلها يعتبر جزءا من احد الأخطاء , ولتتمكن من معرفة عدد المكونات الموجودة

    في عنصر واحد من عناصر التحكم تلك يمكنك استخدام ListCount الخاصة بعنصر التحكم

    المطلوب , والتي تعمل على إرجاع عدد المكونات الموجودة داخل المصفوفة .... والآن

    عند قيامك باستخدام هذه القيمة داخل نظام التكرار For – Next وذلك للتمكن من معالجة

    معلومات المصفوفة مثلما يحدث في الكود التالي سيتم إخبارك بوجود الخطأ ( Subscript

    ) ...







    كود:
    
    For x = 0 To lststudents . ListCount 
    
    
    
    If sStudentName (x) = txtStudentName Then 
    
    
    
    
    
    MsgBox "The Student is Enrolled"
    
    
    
    End If
    
    
    
    
    Next
    
    
    
    


    ولمزيد من التوضيح ... يرجع هذا الأمر إلى أنه قد تم تحديد المصفوفة sStudentName

    بالعدد ( 10 ) وليس بالعدد ( 11 ) , ولتتمكن من تجنب ظهور مثل هذا الخطأ .. قم بطرح

    واحد من المجموع الكلي الذي يتم إرجاعه من خاصية ListCount .... على النحو الموضح

    في الكود التالي:







    كود:
    
    For x = 0 To lststudents . ListCount -1
    
    
    
    If sStudentName (x) = txtStudentName Then 
    
    
    
    
    
    MsgBox "The Student is Enrolled"
    
    
    
    End If
    
    
    
    Next 
    
    


    الموضوع منقول
     
  2.   مشاركة رقم : 2    ‏2005-03-26
  3. العمراوي

    العمراوي مشرف سابق

    التسجيل :
    ‏2002-11-24
    المشاركات:
    7,510
    الإعجاب :
    4
    تسلم يا عزيزي على الموضوع المفيد ...
     

مشاركة هذه الصفحة