1. "&" يحل محل "+"
2. يجب أن تكون تسمية المتغير حساسة لحالة الأحرف، ويجب أن تكون البيانات منظمة بشكل جيد، ويجب إجراء صيانة التعليمات البرمجية المصدرية
3. يرجى تطوير العادات الجيدة التالية لـ "اصطلاح تسمية الكائنات"
4. في حالة شروط الاختيار البسيطة، استخدم الدالة IIf()
5. حاول استخدام Debug.Print لتصحيح الأخطاء
6. عند تعديل خصائص كائن بشكل متكرر، حاول استخدام With....End With
7. حاول استخدام أيقونات الرسائل في MsgBox حتى يصبح البرنامج أكثر توحيدًا. 8. استخدم التعدادات عندما يكون ذلك ممكنًا.
1. "&" يحل محل "+"
في العديد من لغات البرمجة، يتم استخدام "+" لتوصيل السلاسل، مما قد يؤدي بسهولة إلى الغموض. من الممارسات الجيدة استخدام "&" لتسلسل السلاسل.
غير صحيح:
تعتيم sMessage كسلسلة
الرسالة = "1" + "2"
صحيح:
تعتيم sMessage كسلسلة
الرسالة = "1" و"2"
ملاحظة: هناك مسافة بعد "&"
2. يجب أن تكون تسمية المتغير حساسة لحالة الأحرف، ويجب أن تكون البيانات منظمة بشكل جيد، ويجب إجراء صيانة التعليمات البرمجية المصدرية
دعونا نقارن بين القطعتين التاليتين من التعليمات البرمجية:
قراءة الكود الصعب:
خافت SNAME كسلسلة
خافت NTURN كعدد صحيح
إذا كان NTURN = 0 ثم
إذا كان SNAME = "vbeden" إذن
افعل بينما NTURN <4
نتورن = نتورن + 1
حلقة
نهاية إذا
نهاية إذا
من السهل قراءة الكود:
اسم خافت كسلسلة
خافت nTurn كعدد صحيح
إذا nTurn = 0 ثم
إذا كان sName = "vbeden" إذن
افعل ذلك أثناء nTurn <4
نتورن = نتورن + 1
حلقة
نهاية إذا
نهاية إذا
[العودة إلى الفهرس]
3. يرجى تطوير العادات الجيدة التالية لـ "اصطلاح تسمية الكائنات"
بادئات التحكم الموصى بها
مثال على بادئة نوع التحكم
لوحة ثلاثية الأبعاد pnl pnlGroup
بيانات ADO ado adoBiblio
زر الرسوم المتحركة العاني aniMailBox
حدد خانة الاختيار chk chkReadOnly
مربع التحرير والسرد، مربع القائمة المنسدلة cbo cboالإنجليزية
زر الأمر cmd cmdExit
الحوار المشترك dlg dlgFileOpen
الاتصالات كوم كوم فاكس
التحكم (يستخدم في الإجراءات عندما يكون النوع المحدد غير معروف) ctr ctrCurrent
البيانات دات داتبيبليو
مربع التحرير والسرد المرتبط بالبيانات dbcbo dbcboLanguage
شبكة مرتبطة بالبيانات dbgrd dbgrdQueryResult
مربع قائمة مرتبط بالبيانات dblst dblstJobType
مجموعة البيانات dbc dbcAuthor
شبكة البيانات dgd dgdTitles
قائمة البيانات dbl dblPublisher
مكرر البيانات drp drpLocation
تم نشر منتقي التاريخ dtp dtp
مربع قائمة الدليل dir dirSource
مربع قائمة محرك الأقراص drv drvTarget
مربع قائمة الملفات fil filSource
شريط التمرير المسطح fsb fsbMove
نموذج من frmEntry
الإطار من fraLanguage
مقياس غاو غاوستاتوس
GraphgragraRevenue
أسعار الشبكة GRD GRD
أوامر مرنة مرنة هرمية
شريط التمرير الأفقي hsb hsbVolume
الصورة imgIcon
مجموعة الصور imgcbo imgcboProduct
ImageList ilsAllIcons
تسمية lbl lblHelpMessage
خانة اختيار خفيفة الوزن lwchk lwchkArchive
صندوق التحرير والسرد خفيف الوزن lwcbo lwcboالألمانية
زر أمر خفيف الوزن lwcmd lwcmdRemove
إطار خفيف الوزن lwfra lwfraSaveOptions
شريط تمرير أفقي خفيف الوزن lwhsb lwhsbVolume
مربع قائمة خفيف الوزن lwlst lwlstCostCenters
زر خيار خفيف الوزن lwopt lwoptIncomeLevel
مربع نص خفيف الوزن lwtxt lwoptStreet
شريط تمرير عمودي خفيف الوزن lwvsb lwvsbYear
خط لين لين عمودي
مربع القائمة lst lstPolicyCodes
ListView lvw lvwHeadings
رسالة MAPI mpm mpmSentMessage
جلسة MAPI mps mpsSession
MCI MCI MciVideo
القائمة MNU mnuFileOpen
عرض الشهر mvw mvwPeriod
مخطط MS ch chSalesbyRegion
شبكة MS Flex msg msgClients
MS Tab mst mstFirst
ورقة عمل حاوية OLE
زر الخيار optGender
مربع الصورة الموافقة المسبقة عن علم picVGA
مقطع الصورة clp clpToolbar
ProgressBar prg prgLoadFile
البيانات عن بعد rdTitles
RichTextBox rtf rtfReport
الشكل shp shpCircle
المنزلق SLD SLDSCALE
تدور spn spnPages
شريط الحالة staDateTime
SysInfo sys sysMonitor
TabStrip علامة التبويب خيارات
مربع النص txt txtLastName
الموقت tmr tmrAlarm
شريط الأدوات tlb tlbActions
TreeView tre treOrganization
UpDown تحديث updDirection
شريط التمرير العمودي vsb vsbRate
-------------------------------------------------- ----------------------------------
البادئات الموصى بها لكائنات الوصول إلى البيانات (DAO)
استخدم البادئات التالية للإشارة إلى كائنات الوصول إلى البيانات
مثال على بادئة كائن قاعدة البيانات
تقارير كونتينر كونتينر
قاعدة بيانات ديسيبل dbAccounts
DBEngine dbe dbeJet
وثيقة الوثيقة docSalesReport
الحقل fld fldAddress
مجموعة grp grpFinance
الفهرس التاسع idxAge
المعلمة prm prmJobCode
QueryDef qry qrySalesByRegion
مجموعة السجلات RecForecast
العلاقة rel relEmployeeDept
TableDef tbd tbd العملاء
المستخدم usr usr جديد
مساحة العمل wsp wspMine
-------------------------------------------------- ----------------------------------
تستخدم التطبيقات بشكل متكرر العديد من عناصر التحكم في القائمة، ومن المفيد أن يكون لديك مجموعة فريدة من اصطلاحات التسمية لعناصر التحكم هذه. بالإضافة إلى علامة "mnu" الأولية، يجب توسيع بادئة عنصر التحكم في القائمة: تتم إضافة بادئة إضافية لكل مستوى من مستويات التداخل، مع وضع عنوان القائمة النهائي في نهاية سلسلة الاسم. يسرد الجدول أدناه بعض الأمثلة.
بادئات القائمة الموصى بها
اسم معالج القائمة تسلسل عنوان القائمة
افتح الملف mnuFileOpen
إرسال ملف بالبريد الإلكتروني mnuFileSendEmail
إرسال ملف الفاكس mnuFileSendFax
تنسيق الحرف mnuFormatCharacter
محتويات التعليمات mnuHelpContents
عند استخدام اصطلاح التسمية هذا، يتم إدراج كافة أعضاء مجموعة قائمة معينة واحدًا تلو الآخر في نافذة خصائص Visual Basic. علاوة على ذلك، تشير أسماء عناصر التحكم في القائمة بوضوح إلى عناصر القائمة التي تنتمي إليها.
اختر بادئة لعناصر التحكم الأخرى
يجب توحيد عناصر التحكم غير المذكورة أعلاه باستخدام بادئة فريدة مكونة من حرفين أو ثلاثة أحرف لتحقيق الاتساق. استخدم البادئات الأطول من ثلاثة أحرف فقط عندما يكون التوضيح مطلوبًا.
اصطلاحات التسمية الثابتة والمتغيرة
بالإضافة إلى الكائنات، تتطلب الثوابت والمتغيرات أيضًا اصطلاحات تسمية جيدة التصميم. يسرد هذا القسم الاصطلاحات الموصى بها للثوابت والمتغيرات التي يدعمها Visual Basic. ويناقش قضايا تحديد أنواع البيانات ونطاقاتها.
يجب دائمًا تعريف المتغيرات في أصغر نطاق ممكن. يمكن أن تؤدي المتغيرات العامة (العامة) إلى هياكل حالة معقدة للغاية وتجعل فهم منطق التطبيق صعبًا للغاية. تجعل المتغيرات العامة أيضًا إعادة استخدام التعليمات البرمجية وصيانتها أكثر صعوبة.
يمكن أن تحتوي المتغيرات في Visual Basic على النطاقات التالية
موقف إعلان النطاق موقف مرئي
"خاص" في إجراء على مستوى الإجراء أو إجراء فرعي أو إجراء وظيفي في الإجراء الذي تم الإعلان عنه فيه
"خاص" في قسم الإعلان الخاص بالنموذج على مستوى الوحدة النمطية أو الوحدة النمطية للتعليمات البرمجية (.frm، .bas) كل إجراء في الوحدة النمطية للنموذج أو التعليمات البرمجية
"عام" في قسم الإعلانات بوحدة الكود العالمية (.bas) في كل مكان في التطبيق
في تطبيق Visual Basic، استخدم المتغيرات العمومية فقط في حالة عدم وجود طريقة أخرى ملائمة لمشاركة البيانات بين النماذج. عندما يجب استخدام المتغيرات العامة، قم بإعلانها في وحدة واحدة وقم بتجميعها حسب الوظيفة. قم بتسمية هذه الوحدة النمطية باسم ذي معنى للإشارة إلى دورها، مثل Public.bas.
من ممارسات البرمجة الجيدة كتابة تعليمات برمجية معيارية قدر الإمكان. على سبيل المثال، إذا كان التطبيق الخاص بك يعرض مربع حوار، فضع كافة عناصر التحكم والتعليمات البرمجية المطلوبة لإكمال مربع الحوار في نموذج واحد. يساعد هذا في تنظيم كود التطبيق في مكونات مفيدة ويقلل من الحمل الزائد لوقت التشغيل.
باستثناء المتغيرات العامة (التي لا ينبغي تمريرها)، يجب أن تعمل الإجراءات والوظائف فقط على الكائنات التي تم تمريرها إليها. يجب تحديد المتغيرات العامة المستخدمة ضمن الإجراء في قسم الإعلان في بداية الإجراء. بالإضافة إلى ذلك، يجب استخدام ByVal لتمرير المعلمات إلى الإجراءات الفرعية وإجراءات الوظيفة، ما لم تكن هناك حاجة واضحة لتغيير قيمة المعلمة التي تم تمريرها.
مع نمو حجم المشروع، يتزايد عمل تحديد النطاق بسرعة. إن وضع بادئة نطاق مكونة من حرف واحد أمام بادئة النوع يشير إلى هذا النمو، لكن طول اسم المتغير لا يزيد كثيرًا.
بادئة النطاق المتغير
مثال لبادئة النطاق
gstrUserName العالمي
مستوى الوحدة mmblnCalcInProgress
محلي للمعالجة بدون dblVelocity
إذا تم تعريف المتغير على أنه عام في وحدة نمطية قياسية أو وحدة نموذج، فسيكون للمتغير نطاق عالمي. إذا تم تعريف المتغير بأنه خاص في وحدة نمطية قياسية أو وحدة نمطية على التوالي، فإن المتغير له نطاق على مستوى الوحدة النمطية.
ملاحظة: يعد التناسق عنصرًا أساسيًا لاستخدام هذه التقنية بشكل فعال؛ ولن يقوم مدقق بناء الجملة في Visual Basic بالتقاط متغيرات مستوى الوحدة النمطية التي تبدأ بـ "p."
ثابت
يتكون نص الاسم الثابت من حالة مختلطة، حيث يتم كتابة الحرف الأول من كل كلمة بأحرف كبيرة. على الرغم من أن ثوابت Visual Basic القياسية لا تحتوي على نوع البيانات ومعلومات النطاق، إلا أن البادئات مثل i وs وg وm مفيدة لفهم قيمة الثابت ونطاقه. بالنسبة للأسماء الثابتة، ينبغي اتباع نفس القواعد كما هو الحال بالنسبة للمتغيرات. على سبيل المثال:
mintUserListMax "الحد الأقصى لقائمة المستخدمين."
'(قيمة عددية، محلية للوحدة النمطية)
gstrNewLine "حرف السطر الجديد."
'(سلسلة، يستخدمها التطبيق عالميًا)
عامل
سيؤدي الإعلان عن جميع المتغيرات إلى توفير وقت البرمجة لأنه سيكون هناك عدد أقل من الأخطاء الناتجة عن عمليات الكتابة (على سبيل المثال، هل هي aUserNameTmp، أو sUserNameTmp، أو sUserNameTemp). في علامة التبويب "المحرر" في مربع الحوار "خيارات"، حدد الخيار "طلب تعريف المتغير". يتطلب بيان Option Explicit أن يتم تعريف كافة المتغيرات في برنامج Visual Basic.
يجب أن تكون المتغيرات مسبوقة للإشارة إلى نوع البيانات الخاصة بها. ويمكن توسيع البادئة للإشارة إلى نطاق متغير، خاصة بالنسبة للبرامج الكبيرة.
استخدم البادئات التالية للإشارة إلى نوع بيانات المتغير.
نوع البيانات المتغير
مثال على بادئة نوع البيانات
سلسلة (نوع السلسلة) str strFName
عدد صحيح (نوع عدد صحيح قصير) intQuantity
Long (نوع عدد صحيح طويل) lngDistance
مفرد (نوع رقم النقطة العائمة بدقة واحدة) sng sngAverage
مزدوج (نوع النقطة العائمة مزدوج الدقة) dbl dblTolerance
منطقية (نوع منطقي) مليار blnFound
البايت (نوع البايت) بايت bytRasterData
التاريخ (نوع التاريخ) dte dteNow
العملة (حساب العملة ونوع حساب النقطة الثابتة) curcurRevenue
الكائن (نوع الكائن) obj objCurrent
البديل vnt vntCheckSum
وصف أسماء المتغيرات والإجراءات
يجب أن يكون نص اسم المتغير أو الإجراء في حالة مختلطة ويجب أن يكون طويلًا بما يكفي لوصف الغرض منه. كما يجب أن يبدأ اسم الدالة بفعل، مثل InitNameArray أو CloseDialog.
بالنسبة للمصطلحات المستخدمة بشكل متكرر أو الطويلة، يوصى باستخدام الاختصارات القياسية لترشيد طول الاسم. بشكل عام، يصعب قراءة أسماء المتغيرات الأطول من 32 حرفًا على شاشة VGA.
عند استخدام الاختصارات، تأكد من أنها متسقة في جميع أنحاء التطبيق. في المشروع، إذا كنت تستخدم Cnt لفترة من الوقت وقمت بالعد لفترة من الوقت، فسيؤدي ذلك إلى ارتباك غير ضروري.
نوع محدد من قبل المستخدم
في المشروع الكبير الذي يحتوي على العديد من الأنواع المعرفة من قبل المستخدم، غالبًا ما يكون من الضروري إعطاء كل نوع بادئة خاصة به مكونة من ثلاثة أحرف. إذا كانت هذه البادئات تبدأ بـ "u"، فمن السهل التعرف بسرعة على هذه الأنواع عند العمل مع نوع محدد من قبل المستخدم. على سبيل المثال، يمكن استخدام ucli كبادئة لمتغير نوع العميل المحدد من قبل المستخدم.
[العودة إلى الفهرس]
4. في حالة شروط الاختيار البسيطة، استخدم الدالة IIf()
كود روسو:
إذا nNum = 0 ثم
اسم = "سانسي"
آخر
الاسم = "شو"
نهاية إذا
رمز بسيط:
sName = IIf (nNum = 0، "sancy"، "Xu")
5. حاول استخدام Debug.Print لتصحيح الأخطاء
في العديد من عمليات تصحيح الأخطاء للمبتدئين، يتم استخدام MsgBox لتتبع القيم المتغيرة. في الواقع، لا يمكن لـ Debug.Print تحقيق نفس التأثير فحسب، بل سيتم أيضًا تجاهله أثناء التجميع النهائي للبرنامج، ويجب التعليق على MsgBox أو حذفه.
عمومًا:
MsgBox nName
يجب:
تصحيح.طباعة nName
6. عند تعديل خصائص كائن بشكل متكرر، حاول استخدام With....End With
عمومًا:
النموذج 1. الارتفاع = 5000
Form1.Width = 6000
Form1.Caption = "هذا هو MyLabel"
يجب:
مع الفورم 1
.الارتفاع = 5000
العرض = 6000
.Caption = "هذا هو MyLabel"
نهاية مع
كفاءة تنفيذ البرنامج لهذه البنية عالية نسبيًا، خاصة في عبارات الحلقة.
7. حاول استخدام أيقونات الرسائل في MsgBox حتى يصبح البرنامج أكثر توحيدًا.
بشكل عام
vbInformation هي رسالة تُستخدم للمطالبة بالتأكيد أو العملية الناجحة
يتم استخدام vbExclamation لتوجيه رسائل التحذير
vb الرسائل الحرجة المستخدمة لتحفيز حالات الأزمات
vbQuestion هي رسالة تستخدم لطرح الأسئلة
[العودة إلى الفهرس]
8. استخدم التعدادات حيثما أمكن ذلك
تنسيق التعداد هو
[عام | خاص] اسم التعداد
اسم العضو [= تعبير ثابت]
اسم العضو [= تعبير ثابت]
....
نهاية التعداد
يحتوي بيان التعداد على الأجزاء التالية:
وصف جزئي
اختياري عام. يشير إلى أن نوع التعداد مرئي خلال المشروع. الإعداد الافتراضي لأنواع التعداد هو عام.
خاص اختياري. يشير إلى أن نوع التعداد مرئي فقط في الوحدة المعلنة.
الاسم مطلوب. اسم هذا النوع من التعداد. يجب أن يكون الاسم معرفًا قانونيًا لـ Visual Basic يُستخدم لتحديد النوع عند تعريف متغير أو معلمة من نوع التعداد هذا.
اسم العضو مطلوب. معرف Visual Basic قانوني يحدد اسم العناصر المكونة لهذا النوع من التعداد.
التعبير المستمر اختياري. قيمة العنصر (من النوع الطويل). يمكن أن يكون أنواعًا أخرى من التعداد. إذا لم يتم تحديد تعبير ثابت، فستكون القيمة المخصصة إما 0 (إذا كان العنصر هو اسم العضو الأول)، أو قيمة أكبر من قيمة سلفه المباشر.
يوضح
تشير ما يسمى بمتغيرات التعداد إلى المتغيرات المعرفة بنوع التعداد. يمكن تعريف كل من المتغيرات والمعلمات كنوع التعداد. تتم تهيئة عناصر نوع التعداد إلى القيمة الثابتة المحددة في عبارة التعداد. يمكن أن تتضمن القيمة المخصصة أرقامًا موجبة وسالبة ولا يمكن تغييرها في وقت التشغيل. على سبيل المثال:
التعداد SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum
يمكن أن تظهر عبارات التعداد فقط على مستوى الوحدة. بعد تحديد نوع التعداد، يمكنك استخدامه لتحديد المتغيرات أو المعلمات أو الإجراءات التي ترجع هذا النوع. لا يمكن تأهيل أنواع التعداد بأسماء الوحدات النمطية. أنواع التعداد العام في وحدة نمطية للفئة ليست أعضاء في الفئة؛ بل تتم كتابتها ببساطة في مكتبة النوع. لا تتم كتابة أنواع التعداد المحددة في الوحدات النمطية القياسية إلى مكتبة النوع. لا يمكن تعريف أنواع التعداد العام التي تحمل نفس الاسم في كل من الوحدة النمطية القياسية ووحدة الفئة لأنها تشترك في نفس مساحة الاسم. إذا كان هناك نوعان من التعداد في مكتبات أنواع مختلفة بنفس الاسم ولكن بأعضاء مختلفين، فإن المرجع إلى متغير من هذا النوع سيعتمد على مكتبة النوع التي لها أولوية مرجعية أعلى.
لا يمكنك استخدام نوع التعداد كهدف في كتلة "مع".
مثال بيان التعداد
يوضح المثال التالي استخدام عبارة Enum لتعريف مجموعة من الثوابت المسماة. في هذه الحالة هناك بعض ثوابت الألوان القابلة للتحديد المستخدمة لتصميم نموذج إدخال البيانات لقاعدة البيانات.
ألوان واجهة التعداد العام
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFF00&
icSpringGreen = &H7FFF00&
إيكفوريست جرين = &H228B22&
إيكغولدنرود = &H20A5DA&
icFirebrick = &H2222B2&
نهاية التعداد
الميزة هي أنه يسرع البرمجة