قبل البدء في الترميز
الجزء الأكثر أهمية (والذي يتم تجاهله غالبًا) في إنشاء تطبيق في Visual Basic هو مرحلة التصميم. إن الحاجة إلى تصميم واجهة مستخدم للتطبيق واضحة؛ أما الحاجة إلى هيكلة التعليمات البرمجية فهي أقل وضوحًا. يمكن أن تؤدي الطرق المختلفة لإنشاء التطبيقات إلى اختلافات في أداء التطبيق وقابلية صيانة الكود وسهولة استخدامه. يتم تنظيم التعليمات البرمجية لتطبيق Visual Basic بطريقة هرمية. يتكون التطبيق النموذجي من عدة وحدات نمطية: وحدة نموذجية لكل نموذج في التطبيق، ووحدات نمطية قياسية اختيارية تشترك في التعليمات البرمجية، ووحدات نمطية للفئة الاختيارية. تحتوي كل وحدة على عدة عمليات تحتوي على تعليمات برمجية: عملية الحدث، والعملية الفرعية أو عملية الوظيفة، وعملية PRperty. إن تحديد العملية التي تنتمي إلى أي وحدة له علاقة معينة بنوع التطبيق الذي يتم إنشاؤه. نظرًا لأن Visual Basic يعتمد على الكائنات، فمن المفيد التفكير في التطبيقات من حيث الكائنات التي تمثلها. في هذا الفصل، تم تصميم نموذج التطبيق Vcr.vbp استنادًا إلى الكائنات التي تتكون من مسجل فيديو وجهاز تلفزيون. يحتوي تطبيق VCR على وحدتين نموذجيتين، وحدة قياسية ووحدتين فئة. يمكن استخدام "متصفح الكائنات" لفحص بنية المشروع (الشكل 5.2).
الشكل الرئيسي لتطبيق VCR (frmVCR) هو الصورة المرئية لمجموعة VCR وشاشة التلفزيون (الشكل 5.3). وهو يتألف من عدة كائنات تم تصميمها على غرار مشاهد العالم الحقيقي. تحاكي مجموعة من أزرار الأوامر (cmdPlay، cmdRecord، وما إلى ذلك) الأزرار التي تعمل على تشغيل جهاز VCR. يشتمل برنامج VCR أيضًا على ساعة (lblTime)، ومؤشر القناة (lblChannel)، ومؤشر الوظيفة (shpPlay، وshpRecord، وما إلى ذلك) وأنبوب الصورة (picTV). تتضمن وحدة النموذج Vcr.frm إجراءات الحدث لكل هذه الكائنات.
في كثير من الحالات توجد عمليات متكررة مشتركة بين كائنات متعددة. على سبيل المثال، يتطلب "الضغط" على زر "تشغيل" أو "ترجيع" أو "تسجيل" أن يكون زري "الإيقاف المؤقت" و"الإيقاف" صالحين. من الأفضل إنشاء روتين فرعي مشترك يمكن لجميع الأزرار الاتصال به بدلاً من تكرار هذا الرمز في إجراء حدث النقر لكل زر. إذا تم تعديل هذه الإجراءات الفرعية في المستقبل، فيمكن إجراء جميع التعديلات عن طريق تعديلها في مكان واحد. تحتوي الوحدة القياسية Vcr.bas على العديد من الإجراءات المشتركة.
بعض أجزاء جهاز الفيديو تكون غير مرئية، مثل آلية نقل الشريط أو المنطق الكامن وراء تسجيل البرامج التلفزيونية. وبالمثل، لا تحتوي بعض وظائف أجهزة تسجيل الفيديو البرمجية على صور مرئية. يتم تنفيذ هذه الأجزاء والوظائف كفئتين من الوحدات النمطية Recorder.cls وTape.cls. تحتوي وحدة clsRecorder على رمز لبدء عملية "التسجيل" وتحتوي وحدة clsTape على رمز للتحكم في اتجاه "الشريط" وسرعته. لا ترتبط الفئات المحددة في هذه الوحدات بشكل مباشر بأي كائنات في النموذج. نظرًا لأنها وحدات تعليمات برمجية مستقلة، يمكن إعادة بناء برنامج التسجيل بسهولة دون أي تعديلات.
بالإضافة إلى تصميم بنية التعليمات البرمجية الخاصة بك، من المهم أيضًا إنشاء اصطلاح تسمية. بشكل افتراضي، يقوم Visual Basic بتسمية النموذج الأول من المشروع Form1، والنموذج الثاني Form2، وهكذا. إذا كان لديك عدة نماذج في تطبيقك، فمن الجيد أن تمنحها أسماء ذات معنى لتجنب الارتباك عند كتابة التعليمات البرمجية أو تحريرها. يتم سرد بعض اصطلاحات التسمية الموصى بها بواسطة Visual Basic في الملحق B، "اصطلاحات الترميز VisualBasic."
عندما تتعلم المزيد عن الكائنات وتتعلم كتابة التعليمات البرمجية، ارجع إلى نموذج تطبيق VCR للعثور على أمثلة لتقنيات الترميز المختلفة.
آلية كتابة الكود
قبل البدء في كتابة التعليمات البرمجية، من المهم فهم آليات كتابة التعليمات البرمجية في Visual Basic. مثل أي لغة برمجة، لدى Visual Basic قواعدها الخاصة لتنظيم التعليمات البرمجية وتحريرها وتنسيقها.
وحدة التعليمات البرمجية
يتم تخزين تعليمات Visual Basic البرمجية في الوحدات النمطية. هناك ثلاثة أنواع من الوحدات: النماذج والمعايير والفئات. يمكن أن يحتوي التطبيق البسيط على نموذج واحد فقط، مع وجود كافة التعليمات البرمجية الخاصة بالتطبيق في وحدة النموذج. عندما يكون الطلب كبيرًا ومعقدًا، يجب إضافة نماذج إضافية. قد ينتهي بك الأمر إلى اكتشاف وجود تعليمات برمجية مشتركة يتم تنفيذها في عدة أشكال. نظرًا لأنك لا تريد تكرار التعليمات البرمجية في كلا النموذجين، قم بإنشاء وحدة نمطية منفصلة تحتوي على إجراءات تنفيذ التعليمات البرمجية الشائعة. يجب أن تكون الوحدات المستقلة وحدات قياسية. يمكنك بعد ذلك إنشاء مكتبة من الوحدات النمطية التي تحتوي على إجراءات مشتركة.
يمكن أن تحتوي كل وحدة نمطية قياسية ووحدة نمطية للفئة ووحدة نموذجية على ما يلي:
إفادة. يمكنك وضع إعلانات الثوابت والأنواع والمتغيرات وإجراءات مكتبة الارتباط الديناميكي (DLL) على مستوى الوحدة النمطية في النماذج أو الفئات أو الوحدات النمطية القياسية.
عملية. يحتوي الإجراء الفرعي أو الوظيفة أو الخاصية على أجزاء من التعليمات البرمجية التي يمكن تنفيذها كوحدة. ستتم مناقشة هذه الأمور في قسم "نظرة عامة على العملية" لاحقًا في هذا الفصل.
وحدة النموذج
وحدات النموذج (امتداد الملف .FRM) هي الأساس لمعظم تطبيقات Visual Basic. يمكن أن تحتوي وحدة النموذج على إجراءات للتعامل مع الأحداث والإجراءات العامة والإعلانات على مستوى النموذج للمتغيرات والثوابت والأنواع والإجراءات الخارجية. إذا أردت عرض وحدة النموذج في محرر نصوص، فسوف ترى أيضًا وصفًا للنموذج وعناصر التحكم فيه، بما في ذلك إعدادات الخصائص الخاصة بها. التعليمات البرمجية المكتوبة في وحدة نموذج خاصة بالتطبيق المحدد الذي ينتمي إليه النموذج؛ وقد تشير أيضًا إلى نماذج أو كائنات أخرى داخل التطبيق.
الوحدة القياسية
الوحدات القياسية (امتداد الملف .BAS) عبارة عن حاويات للإجراءات والإعلانات التي يتم الوصول إليها بواسطة وحدات نمطية أخرى داخل التطبيق. يمكن أن تحتوي على إعلانات عامة (على مستوى التطبيق) أو على مستوى الوحدة النمطية للمتغيرات والثوابت والأنواع والإجراءات الخارجية والإجراءات العالمية. ليس من الضروري ربط التعليمات البرمجية المكتوبة في الوحدات القياسية بتطبيق معين؛ إذا تم الحرص على الإشارة إلى النماذج وعناصر التحكم ليس بالاسم، فيمكن إعادة استخدام الوحدات القياسية في العديد من التطبيقات المختلفة.
وحدة الصف
في Visual Basic، تعتبر الوحدات النمطية للفئة (امتداد الملف .CLS) أساس البرمجة الموجهة للكائنات. يمكن كتابة التعليمات البرمجية في وحدات الفصل لإنشاء كائنات جديدة. يمكن أن تحتوي هذه الكائنات الجديدة على خصائص وأساليب مخصصة. في الواقع، النموذج هو مجرد وحدة نمطية للفئة يمكن وضع عناصر التحكم عليها وعرض نوافذ النماذج.
تفاصيل لمزيد من المعلومات التفصيلية حول كتابة التعليمات البرمجية في الوحدات النمطية للفئة، راجع الفصل 9، "البرمجة باستخدام الكائنات".
لاحظ أن إصدارات Professional وEnterprise من Visual Basic تتضمن أيضًا مستندات ActiveX ومصممي ActiveX وعناصر تحكم المستخدم. يقدمون أنواعًا جديدة من الوحدات بامتدادات ملفات مختلفة. من منظور الترميز، يجب التعامل مع هذه الوحدات كوحدات نموذجية.
استخدم محرر الكود
محرر التعليمات البرمجية لـ Visual Basic هو النافذة التي يتم كتابة معظم التعليمات البرمجية عليها. إنه مثل برنامج معالجة النصوص عالي التخصص مع العديد من الميزات التي تسهل كتابة تعليمات برمجية Visual Basic. يوضح الشكل 5.4 نافذة "محرر الكود".
نظرًا لأنك تحتاج إلى تشغيل تعليمات Visual Basic البرمجية في الوحدة، فأنت بحاجة إلى فتح نافذة "محرر التعليمات البرمجية" المستقلة لكل وحدة محددة من "Project Explorer". في كل وحدة، لكل كائن موجود في الوحدة، يتم تقسيم الكود الموجود في الوحدة إلى أجزاء مستقلة تتوافق مع الكائن. استخدم "مربع قائمة الكائنات" للتبديل بين الأجزاء. في وحدة النموذج النمطية، تحتوي القائمة على مقطع عام، ومقطع للنموذج نفسه، ومقطع لكل عنصر تحكم يحتوي عليه النموذج. بالنسبة للوحدات النمطية، تتضمن القائمة قسمًا عامًا وقسمًا للوحدات القياسية، ويتم عرض قسم عام واحد فقط.
يمكن أن يحتوي كل جزء من التعليمات البرمجية على عدة إجراءات مختلفة يمكن الوصول إليها باستخدام مربع قائمة الإجراءات. تحتوي قائمة إجراءات وحدة النموذج على قسم منفصل لكل إجراء حدث لنموذج أو عنصر تحكم. على سبيل المثال، تتضمن قائمة العمليات الخاصة بعنصر تحكم التسمية مقطع حدث التغيير، ومقطع حدث النقر، ومقطع حدث DblClick، وما إلى ذلك. تقوم وحدات الفصل فقط بتعداد إجراءات الحدث الخاصة بالفئة نفسها - التهيئة والإنهاء. لا تقوم الوحدة القياسية بتعداد أي إجراءات حدث لأن الوحدة القياسية لا تدعم الأحداث.
تحتوي قائمة الإجراءات الخاصة بالقسم العام للوحدة النمطية فقط على القسم الوحيد - قسم التصريح، حيث يتم وضع المتغيرات والثوابت وإعلانات DLL على مستوى الوحدة النمطية. عند إضافة إجراءات فرعية أو إجراءات وظيفية إلى وحدة نمطية، تتم إضافة هذه الإجراءات إلى مربع قائمة الإجراءات الموجود أسفل قسم الإقرار.
تتوفر طريقتان مختلفتان للتعليمات البرمجية في نافذة Code Editor. يمكنك عرض عملية واحدة في كل مرة، أو يمكنك عرض جميع العمليات في وحدة نمطية، مفصولة عن بعضها البعض بخطوط (كما هو موضح في الشكل 5.4). للتبديل بين العرضين، استخدم زر "عرض التحديد" الموجود في الركن الأيسر السفلي من نافذة المحرر.
ترميز الإكمال التلقائي
بإمكان Visual Basic تعبئة البيانات والخصائص والمعلمات تلقائيًا، مما يجعل كتابة التعليمات البرمجية أكثر ملاءمة. أثناء إدخال التعليمات البرمجية، يقوم المحرر بتعداد الاختيارات أو البيانات أو النماذج الأولية أو القيم المناسبة. يتم الوصول إليها من خلال أمر "خيارات" في قائمة "أدوات"، وتتوفر الخيارات في علامة التبويب "محرر" في مربع الحوار "خيارات" التي تحدد ما إذا كان سيتم السماح بقيم الإعداد للرموز الفردية أو تعطيلها.
عندما تقوم بإدخال اسم عنصر التحكم في الكود، فإن "خصائص أعضاء القائمة التلقائية" ستسلط الضوء على صفحة الخصائص المنسدلة لعنصر التحكم (الشكل 5.5). ستؤدي كتابة الأحرف القليلة الأولى من اسم السمة إلى تحديد الاسم من الجدول، وسيؤدي الضغط على المفتاح Tab إلى إكمال الإدخال. يعد هذا الخيار مفيدًا جدًا عندما لا تكون متأكدًا من خصائص عنصر التحكم المحدد. حتى إذا اخترت تعطيل ميزة "أعضاء القائمة التلقائية"، فلا يزال بإمكانك استخدام مجموعة المفاتيح CTRL J للحصول على هذه الوظيفة.
تعرض ميزة "المعلومات السريعة التلقائية" تركيب البيانات والوظائف (الشكل 5.6). بعد إدخال بيان Visual Basic قانوني أو اسم الوظيفة، يتم عرض بناء الجملة مباشرة أسفل السطر الحالي ويتم عرض المعلمة الأولى الخاصة به بالخط العريض. بعد إدخال قيمة المعلمة الأولى، تظهر المعلمة الثانية مرة أخرى، بالخط العريض أيضًا. يمكن أيضًا الحصول على "معلومات سريعة تلقائية" باستخدام مجموعة المفاتيح CTRL I.
إشارة مرجعية
يمكن استخدام الإشارات المرجعية في محرر التعليمات البرمجية لوضع علامة على أسطر معينة من التعليمات البرمجية بحيث يمكنك العودة إليها بسهولة لاحقًا. يمكن الحصول على تبديل الإشارات المرجعية وإيقاف تشغيلها والأوامر للانتقال إلى الإشارات المرجعية الموجودة من عناصر القائمة "تحرير" أو "الإشارات المرجعية" أو شريط أدوات "التحرير".
مزيد من المعلومات للحصول على معلومات أكثر تفصيلاً حول كيفية استخدام مجموعات المفاتيح لاستخدام الميزات المتنوعة لنافذة Code Editor، راجع "مفاتيح اختصارات نافذة التعليمات البرمجية".
أساسيات الترميز
يقدم هذا القسم آليات كتابة التعليمات البرمجية، بما في ذلك كيفية فصل ودمج أسطر التعليمات البرمجية، وكيفية إضافة التعليقات، وكيفية استخدام الأرقام، واصطلاحات التسمية في Visual Basic.
تقسيم عبارة سطر واحد إلى عدة أسطر
يمكنك استخدام أحرف متابعة السطر (مسافة متبوعة بشرطة سفلية) في نافذة التعليمات البرمجية لتقسيم العبارات الطويلة إلى أسطر متعددة. بسبب استخدام أحرف متابعة السطر، يصبح الكود أكثر قابلية للقراءة سواء على الكمبيوتر أو في الطباعة. يستخدم ما يلي حرف متابعة السطر (_) لتقسيم الكود إلى عدة أسطر:
Data1.RecordSource=_
اختر*منالعناوين،الناشرون_
&WHEREPublishers.PubId=Titles.PubID_
&ANDPublishers.State='CA'
في نفس السطر، لا يمكن إضافة التعليقات بعد حرف متابعة السطر. توجد بعض القيود على المكان الذي يمكن فيه استخدام أحرف متابعة السطر.
الجمع بين عبارات متعددة على نفس السطر
عادةً، توجد عبارة Visual Basic واحدة على سطر بدون فاصل عبارة، ولكن يمكنك وضع عبارتين أو أكثر على نفس السطر عن طريق الفصل بينهما بنقطتين (:).
Text1.Text=مرحبا:أحمر=255:Text1.BackColor=
أحمر
ومع ذلك، لتسهيل قراءة الكود، فمن الأفضل وضع عبارة واحدة في كل سطر.
لمزيد من المعلومات، راجع الملحق أ، "مواصفات Visual Basic والقيود وتنسيق الملف."
أضف تعليقات إلى التعليمات البرمجية الخاصة بك
غالبًا ما ستواجه حرف التعليق (') عند قراءة الأمثلة الموجودة في هذا الدليل. يخبر هذا الرمز Visual Basic بتجاهل ما يلي الرمز. هذه هي التعليقات في مقتطف التعليمات البرمجية، سواء من أجل راحة المطور أو من أجل راحة المبرمجين الآخرين الذين قد يقومون لاحقًا بفحص التعليمات البرمجية المصدر. على سبيل المثال:
"هذا من الجانب الأيسر من الشاشة."
'ابدأ التعليق.
Text1.Text=مرحبًا! ضعه في مربع النص
'مرحباً.
يمكن أن تكون التعليقات على نفس سطر البيان، أو مكتوبة بعد البيان، أو يمكن أن تشغل سطرًا كاملاً. يوضح الكود أعلاه كلا الحالتين. تذكر أن التعليق لا يمكن أن يتبع حرف متابعة السطر في نفس السطر.
ملاحظة: يمكنك إضافة رموز التعليق أو إزالتها من مجموعة من التعليمات البرمجية عن طريق تحديد سطرين أو أكثر من التعليمات البرمجية وتحديد زر كتلة التعليق أو زر إزالة كتلة التعليق على شريط الأدوات تحرير.
فهم أنظمة الأرقام
معظم القيم في هذا المستند مكتوبة بالنظام العشري (الأساس 10). لكن في بعض الأحيان يكون من الملائم أكثر استخدام الأرقام السداسية العشرية (الأساس 16) أو الأرقام الثمانية (الأساس 8). يستخدم Visual Basic البادئة &H لتمثيل الأرقام السداسية العشرية و&O لتمثيل الأرقام الثمانية. يوضح الجدول التالي التمثيل العشري والثماني والست عشري لنفس الرقم.
ليس من الضروري عادة معرفة نظام الأرقام السداسي العشري أو الثماني لأن أجهزة الكمبيوتر يمكنها التعامل مع الأرقام في أي من النظامين. ومع ذلك، فإن بعض أنظمة الأرقام تكون أكثر ملاءمة من غيرها لمهام معينة، مثل استخدام الأرقام السداسية العشرية لتعيين لون الشاشات وعناصر التحكم.
اصطلاحات التسمية VisualBasic
عند كتابة تعليمات برمجية لـ Visual Basic، فإنك تقوم بإعلان وتسمية العديد من العناصر (الإجراءات الفرعية والوظيفية، والمتغيرات، والثوابت، وما إلى ذلك). يجب أن تتبع أسماء الإجراءات والمتغيرات والثوابت المعلنة في تعليمات Visual Basic البرمجية القواعد التالية:
1. يجب أن يبدأوا بحرف.
2. لا يجوز أن تحتوي على فترات مضمنة أو أحرف تعريف النوع (أحرف خاصة تحدد أنواع البيانات).
3. لا يمكن أن يتجاوز 255 حرفًا. لا يمكن أن تتجاوز أسماء عناصر التحكم والنماذج والفئات والوحدات النمطية 40 حرفًا.
4. لا يمكن أن يكون لها نفس اسم الكلمات الرئيسية المقيدة.
الكلمات الأساسية المقيدة هي كلمات يستخدمها Visual Basic وهي جزء من اللغة. وتشمل هذه البيانات المحددة مسبقًا (مثل If وLoop)، والوظائف (مثل Len وAbs)، والعوامل (مثل Or وMod).
معلومات تفصيلية للحصول على معلومات أكثر تفصيلاً حول جدول الكلمات الأساسية، الرجاء الرجوع إلى "دليل مرجع لغة Visual Basic 6.0".
يمكن أن يكون للنماذج وعناصر التحكم نفس اسم الكلمات الأساسية المقيدة. على سبيل المثال، يمكنك تسمية حلقة التحكم. ولكن لا يمكن الرجوع إلى عنصر التحكم بالطريقة المعتادة في التعليمات البرمجية، لأن Visual Basic سيعتقد أن Loop تعني الكلمة الأساسية. على سبيل المثال، سوف خطأ التعليمات البرمجية التالية.
Loop.Visible=صحيح 'خطأ.
للإشارة إلى النماذج أو عناصر التحكم التي لها نفس اسم الكلمة الأساسية المقيدة، يجب عليك تأهيلها أو وضعها بين قوسين مربعين []. على سبيل المثال، لن يحدث خطأ في التعليمة البرمجية التالية.
MyForm.Loop.Visible=True 'استخدم اسم النموذج
"تأهله."
[حلقة].Visible=True 'أقواس مربعة
لقد نجحت.
يمكن استخدام الأقواس المربعة بهذه الطريقة عند الإشارة إلى النماذج وعناصر التحكم، ولكن ليس أثناء تعريف المتغير أو تعريف الإجراء عندما يكون اسم المتغير أو الإجراء هو نفس الكلمة الأساسية المقيدة. يمكن أيضًا استخدام الأقواس المربعة لإجبار Visual Basic على قبول الأسماء التي توفرها مكتبات الأنواع الأخرى التي تتعارض مع الكلمات الأساسية المقيدة.
لاحظ أن كتابة الأقواس المربعة أمر مرهق، لذا فمن المستحسن استخدام كلمات أساسية أقل تقييدًا لأسماء النماذج أو عناصر التحكم. ومع ذلك، إذا قام إصدار جديد من Visual Basic بتعريف كلمات أساسية جديدة تتعارض مع النماذج أو عناصر التحكم الموجودة، فيمكنك استخدام هذه التقنية عند تحديث التعليمات البرمجية الخاصة بك لاستخدام الإصدار الجديد. _
->