الجنرال
07-09-2009, 05:59 PM
Visual Basic للجميع
نحو برمجة آائنية التوجه OOP
بقلم
ترآي العسيري
بسم الله الرحمن الرحيم
(( سُبْحَانَكَ لَا عِلْمَ لَنَا إِلَّا مَا عَلَّمْتَنَا إِنَّكَ أَنْتَ
الْعَلِيمُ الْحَكِيمُ ))
اهداء
اهدي هذا الكتاب بباقة ورد معطرة الى الحبيبة الغالية،
التي وقف القلم حائرا عندها
محاولا ترتيب الحروف
ليكون منها آلمات
تصف شرارة من لهيب حبي لها،
والتي مهما صنعت
ما وفيت ولا آفيت في حقها
ولو بقدر اخمص قدمها...
اليك يا امي الحبيبة اهدي هذا الكتاب...
ابنك المخلص،
Visual Basic للجميع
نحو برمجة آائنية التوجه OOP
الطبعة الاولى 2002
* حقوق آتاب " Visual Basic للجميع – نحو برمجة آائنية التوجه OOP " محفوظة للمؤلف ولا يحق
لأي شخص او جهة رسمية إعادة نشر هذا الكتاب او جزء منه بأي وسيلة دون الاذن الخطي من
المؤلف.
* اسماء البرامج المذآورة في هذا الكتاب مثل Windows ،Visual Basic وغيرها هي علامات
تجارية مسجلة لاصحابها، والمؤلف يحترم هذه العلامات ويقر بها لماليكها سواء آانوا افراد او
شرآات او أي جهة تنظيمية، ولم يتم ذآرها للاختصار.
* تم اختبار المادة العلمية في هذا الكتاب والتحقق منها ومراجعتها، الا ان ال مؤلف غير مسئول
بأي شكل من الاشكال عن الاضرار الناتجة سواء بتطبيق المعلومات في هذا الكتاب، او استخدام
الاآواد او البرامج التابعة له.
* جميع الاراء الموجودة في هذا الكتاب تعبر عن رأي المؤلف الشخصي حتى لو لم توثق بامثلة او
ادلة حسية.
* الكتاب مجاني 100 % ولا يحق لاي شخص بيعه او استغلاله بأي شكل تجاري.
المحتويات
شكر وتقدير ----------------------------------------------------- ا
المقدمة ---------------------------------------------------- ب
الجزء الاول: الاساسيات
الفصل الاول: تعرف على 2 -------------------------- Visual Basic
بيئة التطوير المتكاملة 2------------------------------------------- IDE
نوافذ بيئة التطوير المتكاملة --------------------------------- 3
قوائم بيئة التطوير المتكاملة --------------------------------- 9
اشرطة الادوات --------------------------------------------- 12
آتابة برنامجك الاول ------------------------------------------------ 12
الخطوة الاولى : فكرة البرنامج ----------------------------- 12
الخطوة الثانية : إنشاء المشروع --------------------------- 12
الخطوة الثالث ة: تصميم الواجهة ---------------------------- 13
الخطوة الرابع ة: آتابة التعليمات --------------------------- 14
الخطوة الخامسة : التجربة والتعديل ----------------------- 15
الخطوة السادسة: الترجمة -------------------------------- 16
الفصل الثاني: النماذج والادوات -------------------------------- 17
الخصائص المشترآة ------------------------------------------------ 17
خاصية الاسم 19 ------------------------------------- Name
خصائص الموقع والحجم ------------------------------------ 19
خصائص الاحتضان ------------------------------------------ 20
خاصية الخط 21 ------------------------------------------ Font
خصائص اللون ---------------------------------------------- 22
خصائص الجدولة -------------------------------------------- 23
خصائص مؤشر الفأرة --------------------------------------- 24
خاصية التعريب 25 ------------------------------ RightToLeft
خاصية المقبض 27 -------------------------------------hWnd
خصائص اخرى ---------------------------------------------- 27
الطرق المشترآة --------------------------------------------------- 28
الطريقة 28 ---------------------------------------------- Move
الطريقة 29 ----------------------------------------- SetFocus
الطريقة 30 -------------------------------------------- ZOrder
الطريقة 30 ------------------------------------------- *******
الاحداث المشترآة ------------------------------------------------- 31
احداث الفأرة ------------------------------------------------ 32
احداث الترآيز ----------------------------------------------- 34
احداث لوحة المفاتيح -------------------------------------- 35
حدث التغيير 37 ------------------------------------- Change
نافذة النموذج ------------------------------------------------------- 37
خصائص النموذج -------------------------------------------- 37
طرق النموذج ----------------------------------------------- 43
احداث النموذج --------------------------------------------- 48
القوائم 52 --------------------------------------------- Menus
الادوات الداخلية ---------------------------------------------------- 53
أداة العنوان 53 ------------------------------------------ Label
أداة النص 54 ---------------------------------------- TextBox
زر الاوامر 60 ------------------------------ Command Button
أداة الاختيار 60 ------------------------------------ CheckBox
زر الاختيار 61 ---------------------------------- OptionButton
أداة القائمة 61 --------------------------------------- ListBox
أداة القائمة 64 ----------------------------------- ComboBox
أداة الصورة 64 ------------------------------------ PictureBox
أداة الصورة 64 ------------------------------------------ Image
اشرطة التمرير 65 --------------------------------- ScrollBars
ادوات الملفات ---------------------------------------------- 66
ادوات اخرى ------------------------------------------------- 68
الفصل الثالث: لغة البرمجة 70 ---------------------------- BASIC
المتغيرات والثوابت -------------------------------------------------- 70
قابلية الرؤية وعمر الحياة ---------------------------------- 70
المتغيرات --------------------------------------------------- 75
الثوابت ------------------------------------------------------ 83
الترآيبات والمصفوفات ---------------------------------------------- 85
ترآيبات 85 -------------------------------------------- Enum
ترآيبات من النوع 87 ------------------------------------- UDT
المصفوفات -------------------------------------------------- 89
المجموعات-------------------------------------------------- 93
الاجراءات والدوال --------------------------------------------------- 96
الارسال بالمرجع او القيمة --------------------------------- 98
ارسال انواع اخرى ---------------------------------------- 100
تخصيص المتغيرات المرسلة ----------------------------- 101
التحكم في سير البرنامج ---------------------------------------- 103
التفرع باستخدام 103 -------------------------------------- IF
التفرع باستخدام 105 --------------------------------- Select
الحلقات التكرارية ----------------------------------------- 107
تحسين الكفاءة --------------------------------------------------- 110
P-Code و 110---------------------------------- Native Code
اعدادات 112----------------------- Advanced Optimization
الفصل الرابع: مكتبات VB و 114 ------------------------------ VBA
التعامل مع الاعداد ------------------------------------------------ 114
المعاملات الرياضية ---------------------------------------- 114
الدوال الرياضية -------------------------------------------- 117
تنسيق الاعداد -------------------------------------------- 118
دوال اخرى ------------------------------------------------- 118
التعامل مع الحروف ----------------------------------------------- 120
المعاملات الحرفية ---------------------------------------- 120
البحث والاستبدال ---------------------------------------- 122
تنسيق الحروف -------------------------------------------- 123
دوال اخرى ------------------------------------------------ 123
التعامل مع الوقت والتاريخ ---------------------------------------- 126
دوال الوقت والتاريخ -------------------------------------- 126
تنسيق الوقت والتاريخ ------------------------------------ 130
التعامل مع الملفات والمجلدات ----------------------------------- 130
التعامل مع الملفات --------------------------------------- 131
التعامل مع المجلدات ------------------------------------- 131
البحث عن الملفات والمجلدات --------------------------- 133
تحرير الملفات --------------------------------------------- 133
آائنات اخرى ------------------------------------------------------ 138
آائن البرنامج 139----------------------------------------- App
آائن الحافظة 140--------------------------------- Clipboard
آائن الشاشة 142 ----------------------------------- Screen
آائن الطابعة 142-------------------------------------- Printer
اآتشاف الاخطاء -------------------------------------------------- 144
فكرة عامة ------------------------------------------------- 144
الكائن 147-------------------------------------------------- Err
الفصل الخامس: البرمجة آائنية التوجه 149 ---------------- OOP
مقدمة الى 149 ------------------------------------------------- OOP
لماذا 150 ----------------------------------------------- ؟OOP
سمات 151 ---------------------------------------------- OOP
بناء اول فئة مبسطة ------------------------------------- 152
بناء الفئات --------------------------------------------------------- 153
بناء الخصائص --------------------------------------------- 153
بناء الطرق ------------------------------------------------ 157
بناء الاحداث ---------------------------------------------- 158
مثال تطبيقي ---------------------------------------------- 162
استخدام الكائنات ------------------------------------------------ 165
عبارات وآلمات خاصة بالكائنات -------------------------- 165
ماهي حقيقة الكائن ؟ ----------------------------------- 167
صورة الكائن بالذاآرة ------------------------------------- 168
الربط 171 -------------------------------------------- Binding
ولادة وموت الكائن ---------------------------------------- 173
ارسال الكائن بالمرجع او القيمة ------------------------- 174
الفصل السادس: تعدد الواجهات والوراثة -------------------- 175
تعدد الواجهات 175 ---------------------------------- Polymorphism
تطبيق عملي --------------------------------------------- 176
الوراثة 178 ---------------------------------------------- Inheritance
محاآاة الوراثة ب 180 --------------------------- Visual Basic
علاقة "يحتوي على" ------------------------------------- 183
التفويض 184 ------------------------------------- Delegation
وراثة الواجهات -------------------------------------------- 186
التصنيف الفرعي 188 -------------------------- Subclassing
الاهرام الكائنية --------------------------------------------------- 189
العلاقات بين الفئات -------------------------------------- 190
فئات المجموعات 194 ------------------ Collection Classes
الجزء الثاني: برمجة قواعد البيانات
الفصل السابع: مدخلك الى قواعد البيانات --------------------- 0
تقنيات الوصول الى البيانات ----------------------------------------- 0
التعامل مع قواعد البيانات ------------------------------------------- 0
لغة الاستعلام 0--------------------------------------------------- SQL
الفصل الثامن: استخدام آائنات 0 --------------------------- ADO
الكائن 0--------------------------------------------------- Connection
الكائن 0---------------------------------------------------- Recordset
الكائن 0--------------------------------------------------- Command
الفصل التاسع: الادوات والتقارير --------------------------------- 0
أداة 0-------------------------------------------------------- DataGrid
أداة 0--------------------------------------------------------- FlexGrid
الاداتين DataCombo و 0-------------------------------------DataList
مصمم التقارير -------------------------------------------------------- 0
الجزء الثالث: مواضيع متقدمة
الفصل الحادي عشر: اجراءات 0 ------------------------------ API
البرمجة تحت 0--------------------------------------------- Windows
تطبيقات عملية ------------------------------------------------------- 0
API للمبرمجين الشجعان فقط -------------------------------------- 0
الفصل العاشر: الاستخدام المتقدم للنماذج -------------------- 0
السحب والالقاء ------------------------------------------------------- 0
الإنشاء الديناميكي للادوات ------------------------------------------ 0
النماذج آفئات -------------------------------------------------------- 0
الردود والتصنيف الفرعي للرسائل ----------------------------------- 0
الفصل الثاني عشر: برمجة المكونات 1 COM ------------------ 0
مقدمة الى 0----------------------------------------------------- COM
مشاريع 0------------------------------------------------ ActiveX EXE
مشاريع 0------------------------------------------------ ActiveX DLL
الفصل الثالث عشر: برمجة المكونات 2 COM ------------------- 0
مشاريع 0----------------------------------------------- ActiveX OCX
مسارات التنفيذ 0----------------------------------------- Threading
المكونات الموزعة 0-------------------------------------------- DCOM
الجزء الرابع: برمجة الانترنت
الفصل الرابع عشر: صفحات DHTML الديناميكية --------------- 0
مقدمة الى 0------------------------------------------------ VBScript
مقدمة الى 0-------------------------------------------------- DHTML
الفصل الخامس عشر: صفحات ASP للخادم -------------------- 0
مقدمة الى 0------------------------------------------------------- IIS
آائنات 0----------------------------------------------------------- ASP
الملحق 1: مصادر لمبرمجي 0 --------------------- Visual Basic
الفهرس العربي ------------------------------------------------- 0
الفهرس الانجليزي ---------------------------------------------- 0
أ
شكر وتقدير
اذا آانت الاسماء التالية لا تعني لك شيئا، فهي تعني الكثير بالنسبة لي:
في البداية اود ان اشكر جميع آتاب موقعي السابق "الى القمة مع "Visual Basic
مبتدئا بعاشق الاسمبلي احمد الشمري، ومن ليبيا طارق موسى، والمبرمج
المخضرم صالح الغام دي، وخبير الفلاش إياد زآري، والزميل رود ستيفن، واخي
عبدالله العسيري.
آما اود ان اتقدم بالشكر الجزيل الى جميع مشرفي vb4arab.com والذي يعتبر
اآبر موقع عربي يختص بال Visual Basic ، اشكر الاساتذة : محمد الحلبي، محمد
حمود، حسن الحربي، وليد عبدالله، طارق العبيد، عاصفة، صالح العنزي، محمد
الدوسري، اورانوس، ساهر، جاد والمؤسس عبدالله العتيق على آل ما قدموه من
جهود جبارة لمبرمجي Visual Basic العرب.
اختص بالشكر الجزيل للاستاذ سالم المالكي –مشرف عام بموقع vb4arab - على
مراجعته الدقيقة واقتراحاته النيرة لهذا الكتاب . والاستاذ قاروط –مدرس مادة ال
JAVA و ال ++ C بجامعة الملك فهد للبترول والمعادن - على دروسه القوية في
اساليب برمجة OOP . والاستاذ دونوفاند –استاذ في برنامج اللغة الانجليزية
بالجامعة- على مقرر فن آتابة المقالات واعداد التقارير وارشادي لطريقة تأليف
الكتب. وشكر جزيل الى اسطورة المبرمجين السيد بروس ماآيني –مؤلف آتاب
Hardcore Visual Basic - على الاذن والسماح لي بترجمة بعض المقتطفات من
آتابه وتطبيق اآواده الاحترافية.
ولا انسى شكر الزملاء فهد العمير، عبدالله القحطاني، سعد الدوسري ونايف
العتيبي على اختباراتهم القوية لاآواد برامجي وتصحيح معظم اخطائها.
واذا آان شكر آل هؤلاء في آفة، فان شكر اعز واغلى البشر عندي في آفة
اخرى. امي وابي اشكرآما على آل ما قدمتوه لي في حياتي.
واخيرا، اتمنى ان تستمعوا بقراءة هذا الكتاب واسأل الله سبحانه وتعالى ان يجعله
من العلم الذي ينتفع به انه سميع مجيب الدعوات.
ب
المقدمة
رحلة عشر سنوات من عمر الانسان ليست آرحلة سياحية تختفي آثارها بمجرد
العودة الى المكتب في العمل، فهي رحلة طويلة صاحبتها قراءات لآلاف الصفحات
وسهرات بعدد النجوم التي آنت اراها بعد انصاف الليالي باسطا يدي على لوحة
المفاتيح، متوغلا في صراعات مع الساحر الذي احببته وآرهته .Visual Basic
علاقة الحب والكره ليست علاقة خيالية آما تسطرها خزعبلات واساطير العشاق،
فمنذ الاصدار VB1 بدأ قلبي يخفق الى تلك اللغة –مبدئي ا- بسبب مصمم النماذج
Form Designer الذي ساهم في نسيان اوامر المخرجات Locate ،Print و Color
لكتابة مئات الاسطر -اشبه بالمخطوطات الفرعونية - والخاصة بتصميم الواجهات .
ولكن ما ان لبثت العلاقة الغرامية بالاشتعال، حتى بدأ شريان الكره ل Visual Basic
ينمو شيئا فشيئا بسبب قصور Visual Basic وضعفه -العاجز عن المراوغة - عند
التحدث عن لغة البرمجة BASIC . الا ان علاقة الحب تطغى على علاقة الكره من
جديد آلما استخدم مؤشر الفأرة Mouse عائدا لتصميم الواجهات بمصمم النماذج،
وتطغى علاقة الكره مرة اخرى حين استخدام لوحة المفاتيح وآتابة الاآواد في
نافذة محرر الاآواد .Code Window
وآما يقولون "الحياة تجارب "، فبعد عش ر سنوات من البرمجة ب ،Visual Basic
اآتشفت ان الكلمات -التي بدأت بها مقدمتي- لا اساس لها من الصحة! ف Visual
Basic يمكنك من تصميم نوافذ تضع عليها ازرار Buttons وخانات نص ،TextBoxes
آما يمكنك من الاتصال بقواعد البيانات DataBases لحفظ البيانات على الاقراص،
وهذا بحد ذاته يلبي رغبة آلاف –ان لم يكن ملايين- المبرمجين حول العالم ليقتنعو ا
ان Visual Basic افضل منصة تطوير التطبيقات على مدى التاريخ.
من ناحية اخرى، لا يمكنك Visual Basic من ادارة الذاآرة Memory Management
بطريقة سهلة –مقنعة للمبرمجين- وذلك بسبب ضعف تعامله مع المؤشرات
Pointers ، و عند الحديث عن المشاريع العملاقة، فطاقة Visual Basic لا تستوعب
اآواد حجمها اآثر من K64 في نافذة نموذج واحدة او اجراء واحد، وهذا القصور
يكفي ان يجعل Visual Basic اسوأ منصة تطوير التطبيقات في نظر آلاف –ان لم
يكن ملايين- المبرمجين حول العالم ايضا!
إلا ان المبرمجين الموالين ل Visual Basic قدموا عشرات الحلول لمحاولة تغطية
والالتفاف حول قصور اللغة في القضايا السابقة، والمبرمجين المعادين ل Visual
Basic اثبتوا ان تلك الحلول قد أعمت القصور بدلا من تكحيلها، فهي قد اضعفت
آفاءة التنفيذ وزادت الاآواد تعقيدا.
ج
اما المبرمجين المحايدين –والمؤلف بين صفوفهم - يقولون لك بكل اختصار : اذا آان
Visual Basic يقدم لك حلول لمشاآلك، فكن مبرمج Visual Basic ، واذا آان Visual
Basic لا يقدم لك حلول لمشاآلك، فلا تكن مبرمج .Visual Basic
ومن منطلق المحايدة، اقدم لك هذا الكتاب ليشرح لك البرمجة باستخدام Visual
Basic ولن اتعدى هذا النطاق ابدا، فلا تتوقع فصول –مضيعة للوقت - تقارن لك
Visual Basic مع لغات البرمجة الاخرى، او مادحة Visual Basic آلغة برمجة العقد
الاخير، او مظهرة عيوب Visual Basic حتى تشوه سمعته . فهذا الكتاب يحاو ل
تشييد بنية قوية لك حتى تمكنك من الانطلاق في برمجة Visual Basic من اوسع
ابوابه.
لمن هذا الكتاب؟
اذا آنت جاد في ان تكون مبرمج Visual Basic ، فهذا الكتاب يبني لك قاعدة قوية
تستند عليها حتى تتمكن من مواجهة الاآواد المنتشرة هنا وهناك بين المصادر
المختلفة المتعلقة ب Visual Basic آمواقع الانترنت، مكتبة MSDN او آتب متقدمة
اخرى. اما اذا آنت ناقد –غير هادف - او ترغب في الحصول على ثقافة برمجية لا
تقدم ولا تؤخر، فيكفي ما قرأته من الصفحات السابقة لان الكتاب لا اعتقد انه
مناسب لك.
هذا الكتاب مختص في Visual Basic فقط وليس البرمجة بشكل عام، فلن اتطرق
الى مواضيع وتعاريف طويلة آ ماهو البرنامج؟، ماهي لغة البرمجة؟، ما هو
الخوارزم؟ .... الخ. مع ذلك، فهو موجه الى آآفة المستويات للاسباب التالية:
للمبتدئين: فهو يعرفهم على Visual Basic وبيئة التطوير المتكاملة الخاصة به،
ويشرح لهم آل ما يحتاجونه للبرمجة الفعلية ب Visual Basic آشرح النماذج
والادوات، لغة البرمجة BASIC ، حلول لمشاآلهم اليومية وزيادة ثقافتهم البرمجية
بتقديم مفهوم البرمجة آائنية التوجه OOP وتطبيقها ب .Visual Basic
للمتوسطين: فهو يحقق لهم قفزة نوعية الى مواضيع متقدمة آ برمجة قواعد
البيانات DataBases ، تطبيقات متقدمة على النماذج، قضايا حول اجراءات API
وبرمجة المكونات COM والمكونات الموزعة .DCOM
للمتقدمين: هذا الكتاب لايقدم للمتقدمين سوى اعادة انعاش ******* ذاآرتهم
لمواضيع برمجية خاصة ب Visual Basic ، والسبب الذي يجعل هذا الكتاب موجه لهم
لا يعدو ان يكون الا سبب شخصي للمؤلف، وهي زيادة الثقة بنفسه عندما يعلم ان
مبرمجي Visual Basic المتقدمين قد اعحبوا في آتابه.
د
نقطة اخرى اود توضيحها هي ان هذا الكتاب ليس مرجع Reference من مراجع
MSDN ترجم الى اللغة العربية . فلا تتوقع ان اقوم بشر ح جميع الثوابت، الدوال،
الكائنات .... الخ شرحا تفصيليا، وذلك لانني اريد ان انتهي من آتابة الكتاب قبل ان
تشيب شعرات رأسي. مع ذلك، تعرضت –باختصار- لمئات الدوال، الخصائص،
الكائنات .... الخ بين صفحات هذا الكتاب . لذلك، ارجو منك الحصول في اقرب فرصة
على نسخة من اسطوانة مكتبة MSDN للحصول على التعليمات الفورية والدعم
الفني اللازم للتوغل في تفاصيل جميع الدوال، الكائنات واعضائها، الثوابت .... الخ
قبل ان تبدأ بقراءة الكتاب.
ماذا عن ؟Visual Basic.NET
يبدو ان الحروف NET . تشد انتباه المبرمجين بعدما وزعت Microsoft النسخ
التجريبية Beta من جميع اعضاء Visual Studio.NET . حسنا، الاصدار الاخير من
Visual Basic هو الاصدار السادس VB6 والذي يمثل نهاية الاسطورة ،Visual Basic
اما Visual Basic.NET فهي لغة برمجة جديدة لا يكمن الشبه بينها وبين اسطورتنا
إلا الاسم Visual Basic وصيغ Syntax بعض الاوامر. فالاسم Visual Basic.NET
ليس سوى لعبة تسويقية قامت بها Microsoft حتى لا تخسر جميع زبائنها من
مبرمجي VB1 حتى VB6 . فقبل ان تشد الرحال الى Visual Basic.NET ، فكر
بالموضوع جيدا لان شد الرحال سيكون الانتقال الى لغة برمجة جديدة، آالانتقال
من VB6 الى # C. ارجو ان لا تعتقد انني ارفض Visual Basic.NET ، بل سأعيد
آتابة الجملة الحيادية التي ذآرتها في المقدمة مع اضافة 12 حرفا واربع نقاط : اذا
آان Visual Basic.NET يقدم لك حلول لمشاآلك، فكن مبرمج ،Visual Basic.NET
واذا آان Visual Basic.NET لا يقدم لك حلول لمشاآلك ، فلا تكن مبرمج Visual
.Basic.NET
اذا آنت ستستمر على احدث الاصدارات VB6 ، فسيكون الكتاب مناسب بتقدير جيد
جدا، اما اذا آنت قد فرغت مساحة في قرصك الصلب HardDisk لتنصيب Visual
Basic.NET عليها، فقد يكون الكتاب مناسب بتقدير مقبول مرتفع او جيد –على
الاآثر، لان ا لفائدة ستكون نظرية وليس عملية، فسيتطرق هذا الكتاب الى بعض
المواضيع التي قد تفيدك –نظريا- في لغتك الجديدة آالبرمجة آائنية التوجه OOP
والتطبيقات متعددة الطبقات nTied Applications والمكونات الموزعة DCOM
والقليل من قواعد البيانات.
ه
مواضيع الكتاب
صفحة المحتوي ات اعطتك فكرة عامة عن مواضيع الكتاب، وهنا اعطيك ملخص لاجزاء
الكتاب الاربعة:
الجزء الاول: الاساسيات
الغرض واضح من عنوان الجزء، فهو يبدأ بتعريفك على بيئة التطوير المتكاملة ل
Visual Basic مع آتابة برنامجك الاول، ثم يبدأ بالتحدث عن النماذج والادوات وشرح
جميع خصائصها، طرقها واحداثها، ثم يقوى مهاراتك البرمجية سواء آانت في لغة
البرمجة BASIC او وظائف مكتبات VB و VBA . المزيد ايضا، ينقلك هذا الجزء الى
المرحلة الثانية وهي البرمجة آائنية التوجه OOP مع تفصيل مبادئها الثلاث:
التغليف Encapsulation ، تعدد الواجهات Polymorphism والوراثة .Inheritance
الجزء الثاني: برمجة قواعد البيانات
يعتبر هذا الجزء المدخل الرئيس الى برمجة التطبيقات المعتمدة على قواعد
البيانات DataBases حيث يبدأ باساسيات طرق الوصول الى البيانات Data Access
ومقرر سريع في لغة الاستعلام SQL ، آما يختص آائنات ADO ويتوغل في تفاصيل
بعض ادوات الجداول وانشاء التقارير.
الجزء الثالث: مواضيع متقدمة
لا تنتقل الى هذا الجزء حتى تكون قد استوعبت الجزء الاول بشكل جيد، فالجزء
يتعدى افاق Visual Basic الى ان يصل الى البرمجة باستخدام اجراءات API وعرض
تطبيقات عملية تؤدي الى زيادة فاعلية ومرونة برامجك، آما يحتوي على فصل
بعنوان "الاستخدام المتقدم للنماذج " حيث يظهر لك امكانيات النماذج بطرق لم
تخطر على بالك . واختم الجزء بفصلين لبرمجة الكائنات المرآبة COM وآل ما
تحتاجه لتطوير مشاريع من نوع ActiveX DLL ،ActiveX EXE و ActiveX OCX مع
مقدمة الى المكونات الموزعة .DCOM
الجزء الرابع: برمجة الانترنت
وهو اصغر اجزاء هذا الكتاب، فهو يحتوي على فصلين الاول يختص ببرمجة صفحات
DHTML الديناميكية ومقدمة الى اللغة الصغيرة VBScript ، والفصل الاخر ينقلك من
برمجة العميل Client الى برمجة الخادم Server باستخدام الخادم IIS لتطوير
صفحات .ASP
و
طريقة تنظيم الكتاب
لم استخدم سوى الطرق التقليدية لتنظيم وتنسيق محتويات الكتاب. فضلت
استخدام الخط Tahoma لوضوحه ودعمه في جميع الاجهزة فهو من النوع
UNICODE ، وهو نفس الخط المستخدم في آتابة الاآواد، والحديث عن الاآواد في
هذا الك تاب يجرني الى اخبارك انك لن تجد الاآواد المستخدمه في الامثلة الا بين
صفحات هذا الكتاب، اما بعض الامثلة الطويلة او التي تتطلب ملفات متعددة لتوضيح
فكرتها، فالرمز سيظهر في اعلى الكود موضحا ان الكود التالي موجود في داخل
الملف المضغوط Codes.ZIP والذي تستطيع انزاله Download من نفس الموقع
الذي انزلت الكتاب منه . ستلاحظ ايضا انني استخدم الاقواس [ و ] اذا قصدت ازرار
في لوحة المفاتيح آ [ ESC] ،[ENTER ] ...الخ. وبالنسبة للاشكال التوضيحية، لم
اآثر من استخدامها خشية ازدياد مساحة ملف الكتاب -والذي قد افصل اجزاءه الى
ملفات مستقلة رغم انني لا احبذ ذلك، والاسلوب المعتمد لترقيم الاشكال يبدأ
برقم الفصل ثم رقم الشكل بذلك الفصل، فلا اعتقد انك تريد البحث عن الشكل
! 9485938
آلمة اخيرة
بالاعتماد على مجهودي، فانه يستحيل علي آتابة ولو حرف واحد من حروف
الكتاب ان لم يكتب الله سبحانه و تعالى التوفيق اولا واخيرا لاتمامه. ما اود ان اقوله
لك عزيزي القارئ، ان الكتاب الذي امام عينيك قد آلفني الكثير والكثير من
المجهود العقلي والبدني ومئات من ساعات عمري محاولا تقديم شئ للمكتبة
العربية الالكترونية من خلاله . اذا آان التفكير في نجاح هذا الكتاب امر بعيد المدى،
فحسبي ان لا يفشل، وان فشل فليس لي سوى ان أعود الى آراسي القراء
باحثا عن مؤلف عربي في منصة الكتاب يرشدني الى ضالتي في مواجهة العصر
الحالي لتقنية المعلومات.
اخيرا، اود ان اعتذر شديد الاعتذار عن عدم ارفاق بريدي الالكتروني على صفحات
الكتاب -لاسباب شخصية - رغم انني لست ملزم بارفاقه طالما آونه آتاب مجاني
للجميع، فلا تتوقع دعما فنيا مني . آما ارجو ان لا تحاول الغاء اسمي من صفحات
الكتاب واستبداله باسمك او اسم شخص عزيز على قلبك، فان ذلك لا يرسم
الابتسامة على شفتاي.
ترآي العسيري
الظهران – يناير 2002
الجزء الاول
الاساسيات
2
الفصل الاول
تعرف على Visual Basic
بسم الله نبدأ وعلى برآته نسير مع الجملة Visual Basic . تختلف وجهات النظر بين
المبرمجين حول تعريف او تصنيف Visual Basic ، هل Visual Basic لغة برمجة ام
برنامج تصميم نوافذ ام منتج متكامل؟ تقنيا، Visual Basic عبارة عن مكتبة من
المكتبات توفر عدة اوامر برمجية متكاملة مع ابنتها – Visual Basic for Application
تختصر VBA . الا ان المتعارف عليه بين المبرمجين هو ان Visual Basic لغة برمجة
وبرنامج تصميم نوافذ ومكتبات تشغيلية، أي باختصار هو منتج متكامل . لذلك، عندما
اتحدث عن Visual Basic في هذا الكتاب فانني اقصد جميع التعريفات السابقة، فلو
ذآرت مزايا لغة Visual Basic فانني اقصد اللغة الحنونة BASIC ،
نحو برمجة آائنية التوجه OOP
بقلم
ترآي العسيري
بسم الله الرحمن الرحيم
(( سُبْحَانَكَ لَا عِلْمَ لَنَا إِلَّا مَا عَلَّمْتَنَا إِنَّكَ أَنْتَ
الْعَلِيمُ الْحَكِيمُ ))
اهداء
اهدي هذا الكتاب بباقة ورد معطرة الى الحبيبة الغالية،
التي وقف القلم حائرا عندها
محاولا ترتيب الحروف
ليكون منها آلمات
تصف شرارة من لهيب حبي لها،
والتي مهما صنعت
ما وفيت ولا آفيت في حقها
ولو بقدر اخمص قدمها...
اليك يا امي الحبيبة اهدي هذا الكتاب...
ابنك المخلص،
Visual Basic للجميع
نحو برمجة آائنية التوجه OOP
الطبعة الاولى 2002
* حقوق آتاب " Visual Basic للجميع – نحو برمجة آائنية التوجه OOP " محفوظة للمؤلف ولا يحق
لأي شخص او جهة رسمية إعادة نشر هذا الكتاب او جزء منه بأي وسيلة دون الاذن الخطي من
المؤلف.
* اسماء البرامج المذآورة في هذا الكتاب مثل Windows ،Visual Basic وغيرها هي علامات
تجارية مسجلة لاصحابها، والمؤلف يحترم هذه العلامات ويقر بها لماليكها سواء آانوا افراد او
شرآات او أي جهة تنظيمية، ولم يتم ذآرها للاختصار.
* تم اختبار المادة العلمية في هذا الكتاب والتحقق منها ومراجعتها، الا ان ال مؤلف غير مسئول
بأي شكل من الاشكال عن الاضرار الناتجة سواء بتطبيق المعلومات في هذا الكتاب، او استخدام
الاآواد او البرامج التابعة له.
* جميع الاراء الموجودة في هذا الكتاب تعبر عن رأي المؤلف الشخصي حتى لو لم توثق بامثلة او
ادلة حسية.
* الكتاب مجاني 100 % ولا يحق لاي شخص بيعه او استغلاله بأي شكل تجاري.
المحتويات
شكر وتقدير ----------------------------------------------------- ا
المقدمة ---------------------------------------------------- ب
الجزء الاول: الاساسيات
الفصل الاول: تعرف على 2 -------------------------- Visual Basic
بيئة التطوير المتكاملة 2------------------------------------------- IDE
نوافذ بيئة التطوير المتكاملة --------------------------------- 3
قوائم بيئة التطوير المتكاملة --------------------------------- 9
اشرطة الادوات --------------------------------------------- 12
آتابة برنامجك الاول ------------------------------------------------ 12
الخطوة الاولى : فكرة البرنامج ----------------------------- 12
الخطوة الثانية : إنشاء المشروع --------------------------- 12
الخطوة الثالث ة: تصميم الواجهة ---------------------------- 13
الخطوة الرابع ة: آتابة التعليمات --------------------------- 14
الخطوة الخامسة : التجربة والتعديل ----------------------- 15
الخطوة السادسة: الترجمة -------------------------------- 16
الفصل الثاني: النماذج والادوات -------------------------------- 17
الخصائص المشترآة ------------------------------------------------ 17
خاصية الاسم 19 ------------------------------------- Name
خصائص الموقع والحجم ------------------------------------ 19
خصائص الاحتضان ------------------------------------------ 20
خاصية الخط 21 ------------------------------------------ Font
خصائص اللون ---------------------------------------------- 22
خصائص الجدولة -------------------------------------------- 23
خصائص مؤشر الفأرة --------------------------------------- 24
خاصية التعريب 25 ------------------------------ RightToLeft
خاصية المقبض 27 -------------------------------------hWnd
خصائص اخرى ---------------------------------------------- 27
الطرق المشترآة --------------------------------------------------- 28
الطريقة 28 ---------------------------------------------- Move
الطريقة 29 ----------------------------------------- SetFocus
الطريقة 30 -------------------------------------------- ZOrder
الطريقة 30 ------------------------------------------- *******
الاحداث المشترآة ------------------------------------------------- 31
احداث الفأرة ------------------------------------------------ 32
احداث الترآيز ----------------------------------------------- 34
احداث لوحة المفاتيح -------------------------------------- 35
حدث التغيير 37 ------------------------------------- Change
نافذة النموذج ------------------------------------------------------- 37
خصائص النموذج -------------------------------------------- 37
طرق النموذج ----------------------------------------------- 43
احداث النموذج --------------------------------------------- 48
القوائم 52 --------------------------------------------- Menus
الادوات الداخلية ---------------------------------------------------- 53
أداة العنوان 53 ------------------------------------------ Label
أداة النص 54 ---------------------------------------- TextBox
زر الاوامر 60 ------------------------------ Command Button
أداة الاختيار 60 ------------------------------------ CheckBox
زر الاختيار 61 ---------------------------------- OptionButton
أداة القائمة 61 --------------------------------------- ListBox
أداة القائمة 64 ----------------------------------- ComboBox
أداة الصورة 64 ------------------------------------ PictureBox
أداة الصورة 64 ------------------------------------------ Image
اشرطة التمرير 65 --------------------------------- ScrollBars
ادوات الملفات ---------------------------------------------- 66
ادوات اخرى ------------------------------------------------- 68
الفصل الثالث: لغة البرمجة 70 ---------------------------- BASIC
المتغيرات والثوابت -------------------------------------------------- 70
قابلية الرؤية وعمر الحياة ---------------------------------- 70
المتغيرات --------------------------------------------------- 75
الثوابت ------------------------------------------------------ 83
الترآيبات والمصفوفات ---------------------------------------------- 85
ترآيبات 85 -------------------------------------------- Enum
ترآيبات من النوع 87 ------------------------------------- UDT
المصفوفات -------------------------------------------------- 89
المجموعات-------------------------------------------------- 93
الاجراءات والدوال --------------------------------------------------- 96
الارسال بالمرجع او القيمة --------------------------------- 98
ارسال انواع اخرى ---------------------------------------- 100
تخصيص المتغيرات المرسلة ----------------------------- 101
التحكم في سير البرنامج ---------------------------------------- 103
التفرع باستخدام 103 -------------------------------------- IF
التفرع باستخدام 105 --------------------------------- Select
الحلقات التكرارية ----------------------------------------- 107
تحسين الكفاءة --------------------------------------------------- 110
P-Code و 110---------------------------------- Native Code
اعدادات 112----------------------- Advanced Optimization
الفصل الرابع: مكتبات VB و 114 ------------------------------ VBA
التعامل مع الاعداد ------------------------------------------------ 114
المعاملات الرياضية ---------------------------------------- 114
الدوال الرياضية -------------------------------------------- 117
تنسيق الاعداد -------------------------------------------- 118
دوال اخرى ------------------------------------------------- 118
التعامل مع الحروف ----------------------------------------------- 120
المعاملات الحرفية ---------------------------------------- 120
البحث والاستبدال ---------------------------------------- 122
تنسيق الحروف -------------------------------------------- 123
دوال اخرى ------------------------------------------------ 123
التعامل مع الوقت والتاريخ ---------------------------------------- 126
دوال الوقت والتاريخ -------------------------------------- 126
تنسيق الوقت والتاريخ ------------------------------------ 130
التعامل مع الملفات والمجلدات ----------------------------------- 130
التعامل مع الملفات --------------------------------------- 131
التعامل مع المجلدات ------------------------------------- 131
البحث عن الملفات والمجلدات --------------------------- 133
تحرير الملفات --------------------------------------------- 133
آائنات اخرى ------------------------------------------------------ 138
آائن البرنامج 139----------------------------------------- App
آائن الحافظة 140--------------------------------- Clipboard
آائن الشاشة 142 ----------------------------------- Screen
آائن الطابعة 142-------------------------------------- Printer
اآتشاف الاخطاء -------------------------------------------------- 144
فكرة عامة ------------------------------------------------- 144
الكائن 147-------------------------------------------------- Err
الفصل الخامس: البرمجة آائنية التوجه 149 ---------------- OOP
مقدمة الى 149 ------------------------------------------------- OOP
لماذا 150 ----------------------------------------------- ؟OOP
سمات 151 ---------------------------------------------- OOP
بناء اول فئة مبسطة ------------------------------------- 152
بناء الفئات --------------------------------------------------------- 153
بناء الخصائص --------------------------------------------- 153
بناء الطرق ------------------------------------------------ 157
بناء الاحداث ---------------------------------------------- 158
مثال تطبيقي ---------------------------------------------- 162
استخدام الكائنات ------------------------------------------------ 165
عبارات وآلمات خاصة بالكائنات -------------------------- 165
ماهي حقيقة الكائن ؟ ----------------------------------- 167
صورة الكائن بالذاآرة ------------------------------------- 168
الربط 171 -------------------------------------------- Binding
ولادة وموت الكائن ---------------------------------------- 173
ارسال الكائن بالمرجع او القيمة ------------------------- 174
الفصل السادس: تعدد الواجهات والوراثة -------------------- 175
تعدد الواجهات 175 ---------------------------------- Polymorphism
تطبيق عملي --------------------------------------------- 176
الوراثة 178 ---------------------------------------------- Inheritance
محاآاة الوراثة ب 180 --------------------------- Visual Basic
علاقة "يحتوي على" ------------------------------------- 183
التفويض 184 ------------------------------------- Delegation
وراثة الواجهات -------------------------------------------- 186
التصنيف الفرعي 188 -------------------------- Subclassing
الاهرام الكائنية --------------------------------------------------- 189
العلاقات بين الفئات -------------------------------------- 190
فئات المجموعات 194 ------------------ Collection Classes
الجزء الثاني: برمجة قواعد البيانات
الفصل السابع: مدخلك الى قواعد البيانات --------------------- 0
تقنيات الوصول الى البيانات ----------------------------------------- 0
التعامل مع قواعد البيانات ------------------------------------------- 0
لغة الاستعلام 0--------------------------------------------------- SQL
الفصل الثامن: استخدام آائنات 0 --------------------------- ADO
الكائن 0--------------------------------------------------- Connection
الكائن 0---------------------------------------------------- Recordset
الكائن 0--------------------------------------------------- Command
الفصل التاسع: الادوات والتقارير --------------------------------- 0
أداة 0-------------------------------------------------------- DataGrid
أداة 0--------------------------------------------------------- FlexGrid
الاداتين DataCombo و 0-------------------------------------DataList
مصمم التقارير -------------------------------------------------------- 0
الجزء الثالث: مواضيع متقدمة
الفصل الحادي عشر: اجراءات 0 ------------------------------ API
البرمجة تحت 0--------------------------------------------- Windows
تطبيقات عملية ------------------------------------------------------- 0
API للمبرمجين الشجعان فقط -------------------------------------- 0
الفصل العاشر: الاستخدام المتقدم للنماذج -------------------- 0
السحب والالقاء ------------------------------------------------------- 0
الإنشاء الديناميكي للادوات ------------------------------------------ 0
النماذج آفئات -------------------------------------------------------- 0
الردود والتصنيف الفرعي للرسائل ----------------------------------- 0
الفصل الثاني عشر: برمجة المكونات 1 COM ------------------ 0
مقدمة الى 0----------------------------------------------------- COM
مشاريع 0------------------------------------------------ ActiveX EXE
مشاريع 0------------------------------------------------ ActiveX DLL
الفصل الثالث عشر: برمجة المكونات 2 COM ------------------- 0
مشاريع 0----------------------------------------------- ActiveX OCX
مسارات التنفيذ 0----------------------------------------- Threading
المكونات الموزعة 0-------------------------------------------- DCOM
الجزء الرابع: برمجة الانترنت
الفصل الرابع عشر: صفحات DHTML الديناميكية --------------- 0
مقدمة الى 0------------------------------------------------ VBScript
مقدمة الى 0-------------------------------------------------- DHTML
الفصل الخامس عشر: صفحات ASP للخادم -------------------- 0
مقدمة الى 0------------------------------------------------------- IIS
آائنات 0----------------------------------------------------------- ASP
الملحق 1: مصادر لمبرمجي 0 --------------------- Visual Basic
الفهرس العربي ------------------------------------------------- 0
الفهرس الانجليزي ---------------------------------------------- 0
أ
شكر وتقدير
اذا آانت الاسماء التالية لا تعني لك شيئا، فهي تعني الكثير بالنسبة لي:
في البداية اود ان اشكر جميع آتاب موقعي السابق "الى القمة مع "Visual Basic
مبتدئا بعاشق الاسمبلي احمد الشمري، ومن ليبيا طارق موسى، والمبرمج
المخضرم صالح الغام دي، وخبير الفلاش إياد زآري، والزميل رود ستيفن، واخي
عبدالله العسيري.
آما اود ان اتقدم بالشكر الجزيل الى جميع مشرفي vb4arab.com والذي يعتبر
اآبر موقع عربي يختص بال Visual Basic ، اشكر الاساتذة : محمد الحلبي، محمد
حمود، حسن الحربي، وليد عبدالله، طارق العبيد، عاصفة، صالح العنزي، محمد
الدوسري، اورانوس، ساهر، جاد والمؤسس عبدالله العتيق على آل ما قدموه من
جهود جبارة لمبرمجي Visual Basic العرب.
اختص بالشكر الجزيل للاستاذ سالم المالكي –مشرف عام بموقع vb4arab - على
مراجعته الدقيقة واقتراحاته النيرة لهذا الكتاب . والاستاذ قاروط –مدرس مادة ال
JAVA و ال ++ C بجامعة الملك فهد للبترول والمعادن - على دروسه القوية في
اساليب برمجة OOP . والاستاذ دونوفاند –استاذ في برنامج اللغة الانجليزية
بالجامعة- على مقرر فن آتابة المقالات واعداد التقارير وارشادي لطريقة تأليف
الكتب. وشكر جزيل الى اسطورة المبرمجين السيد بروس ماآيني –مؤلف آتاب
Hardcore Visual Basic - على الاذن والسماح لي بترجمة بعض المقتطفات من
آتابه وتطبيق اآواده الاحترافية.
ولا انسى شكر الزملاء فهد العمير، عبدالله القحطاني، سعد الدوسري ونايف
العتيبي على اختباراتهم القوية لاآواد برامجي وتصحيح معظم اخطائها.
واذا آان شكر آل هؤلاء في آفة، فان شكر اعز واغلى البشر عندي في آفة
اخرى. امي وابي اشكرآما على آل ما قدمتوه لي في حياتي.
واخيرا، اتمنى ان تستمعوا بقراءة هذا الكتاب واسأل الله سبحانه وتعالى ان يجعله
من العلم الذي ينتفع به انه سميع مجيب الدعوات.
ب
المقدمة
رحلة عشر سنوات من عمر الانسان ليست آرحلة سياحية تختفي آثارها بمجرد
العودة الى المكتب في العمل، فهي رحلة طويلة صاحبتها قراءات لآلاف الصفحات
وسهرات بعدد النجوم التي آنت اراها بعد انصاف الليالي باسطا يدي على لوحة
المفاتيح، متوغلا في صراعات مع الساحر الذي احببته وآرهته .Visual Basic
علاقة الحب والكره ليست علاقة خيالية آما تسطرها خزعبلات واساطير العشاق،
فمنذ الاصدار VB1 بدأ قلبي يخفق الى تلك اللغة –مبدئي ا- بسبب مصمم النماذج
Form Designer الذي ساهم في نسيان اوامر المخرجات Locate ،Print و Color
لكتابة مئات الاسطر -اشبه بالمخطوطات الفرعونية - والخاصة بتصميم الواجهات .
ولكن ما ان لبثت العلاقة الغرامية بالاشتعال، حتى بدأ شريان الكره ل Visual Basic
ينمو شيئا فشيئا بسبب قصور Visual Basic وضعفه -العاجز عن المراوغة - عند
التحدث عن لغة البرمجة BASIC . الا ان علاقة الحب تطغى على علاقة الكره من
جديد آلما استخدم مؤشر الفأرة Mouse عائدا لتصميم الواجهات بمصمم النماذج،
وتطغى علاقة الكره مرة اخرى حين استخدام لوحة المفاتيح وآتابة الاآواد في
نافذة محرر الاآواد .Code Window
وآما يقولون "الحياة تجارب "، فبعد عش ر سنوات من البرمجة ب ،Visual Basic
اآتشفت ان الكلمات -التي بدأت بها مقدمتي- لا اساس لها من الصحة! ف Visual
Basic يمكنك من تصميم نوافذ تضع عليها ازرار Buttons وخانات نص ،TextBoxes
آما يمكنك من الاتصال بقواعد البيانات DataBases لحفظ البيانات على الاقراص،
وهذا بحد ذاته يلبي رغبة آلاف –ان لم يكن ملايين- المبرمجين حول العالم ليقتنعو ا
ان Visual Basic افضل منصة تطوير التطبيقات على مدى التاريخ.
من ناحية اخرى، لا يمكنك Visual Basic من ادارة الذاآرة Memory Management
بطريقة سهلة –مقنعة للمبرمجين- وذلك بسبب ضعف تعامله مع المؤشرات
Pointers ، و عند الحديث عن المشاريع العملاقة، فطاقة Visual Basic لا تستوعب
اآواد حجمها اآثر من K64 في نافذة نموذج واحدة او اجراء واحد، وهذا القصور
يكفي ان يجعل Visual Basic اسوأ منصة تطوير التطبيقات في نظر آلاف –ان لم
يكن ملايين- المبرمجين حول العالم ايضا!
إلا ان المبرمجين الموالين ل Visual Basic قدموا عشرات الحلول لمحاولة تغطية
والالتفاف حول قصور اللغة في القضايا السابقة، والمبرمجين المعادين ل Visual
Basic اثبتوا ان تلك الحلول قد أعمت القصور بدلا من تكحيلها، فهي قد اضعفت
آفاءة التنفيذ وزادت الاآواد تعقيدا.
ج
اما المبرمجين المحايدين –والمؤلف بين صفوفهم - يقولون لك بكل اختصار : اذا آان
Visual Basic يقدم لك حلول لمشاآلك، فكن مبرمج Visual Basic ، واذا آان Visual
Basic لا يقدم لك حلول لمشاآلك، فلا تكن مبرمج .Visual Basic
ومن منطلق المحايدة، اقدم لك هذا الكتاب ليشرح لك البرمجة باستخدام Visual
Basic ولن اتعدى هذا النطاق ابدا، فلا تتوقع فصول –مضيعة للوقت - تقارن لك
Visual Basic مع لغات البرمجة الاخرى، او مادحة Visual Basic آلغة برمجة العقد
الاخير، او مظهرة عيوب Visual Basic حتى تشوه سمعته . فهذا الكتاب يحاو ل
تشييد بنية قوية لك حتى تمكنك من الانطلاق في برمجة Visual Basic من اوسع
ابوابه.
لمن هذا الكتاب؟
اذا آنت جاد في ان تكون مبرمج Visual Basic ، فهذا الكتاب يبني لك قاعدة قوية
تستند عليها حتى تتمكن من مواجهة الاآواد المنتشرة هنا وهناك بين المصادر
المختلفة المتعلقة ب Visual Basic آمواقع الانترنت، مكتبة MSDN او آتب متقدمة
اخرى. اما اذا آنت ناقد –غير هادف - او ترغب في الحصول على ثقافة برمجية لا
تقدم ولا تؤخر، فيكفي ما قرأته من الصفحات السابقة لان الكتاب لا اعتقد انه
مناسب لك.
هذا الكتاب مختص في Visual Basic فقط وليس البرمجة بشكل عام، فلن اتطرق
الى مواضيع وتعاريف طويلة آ ماهو البرنامج؟، ماهي لغة البرمجة؟، ما هو
الخوارزم؟ .... الخ. مع ذلك، فهو موجه الى آآفة المستويات للاسباب التالية:
للمبتدئين: فهو يعرفهم على Visual Basic وبيئة التطوير المتكاملة الخاصة به،
ويشرح لهم آل ما يحتاجونه للبرمجة الفعلية ب Visual Basic آشرح النماذج
والادوات، لغة البرمجة BASIC ، حلول لمشاآلهم اليومية وزيادة ثقافتهم البرمجية
بتقديم مفهوم البرمجة آائنية التوجه OOP وتطبيقها ب .Visual Basic
للمتوسطين: فهو يحقق لهم قفزة نوعية الى مواضيع متقدمة آ برمجة قواعد
البيانات DataBases ، تطبيقات متقدمة على النماذج، قضايا حول اجراءات API
وبرمجة المكونات COM والمكونات الموزعة .DCOM
للمتقدمين: هذا الكتاب لايقدم للمتقدمين سوى اعادة انعاش ******* ذاآرتهم
لمواضيع برمجية خاصة ب Visual Basic ، والسبب الذي يجعل هذا الكتاب موجه لهم
لا يعدو ان يكون الا سبب شخصي للمؤلف، وهي زيادة الثقة بنفسه عندما يعلم ان
مبرمجي Visual Basic المتقدمين قد اعحبوا في آتابه.
د
نقطة اخرى اود توضيحها هي ان هذا الكتاب ليس مرجع Reference من مراجع
MSDN ترجم الى اللغة العربية . فلا تتوقع ان اقوم بشر ح جميع الثوابت، الدوال،
الكائنات .... الخ شرحا تفصيليا، وذلك لانني اريد ان انتهي من آتابة الكتاب قبل ان
تشيب شعرات رأسي. مع ذلك، تعرضت –باختصار- لمئات الدوال، الخصائص،
الكائنات .... الخ بين صفحات هذا الكتاب . لذلك، ارجو منك الحصول في اقرب فرصة
على نسخة من اسطوانة مكتبة MSDN للحصول على التعليمات الفورية والدعم
الفني اللازم للتوغل في تفاصيل جميع الدوال، الكائنات واعضائها، الثوابت .... الخ
قبل ان تبدأ بقراءة الكتاب.
ماذا عن ؟Visual Basic.NET
يبدو ان الحروف NET . تشد انتباه المبرمجين بعدما وزعت Microsoft النسخ
التجريبية Beta من جميع اعضاء Visual Studio.NET . حسنا، الاصدار الاخير من
Visual Basic هو الاصدار السادس VB6 والذي يمثل نهاية الاسطورة ،Visual Basic
اما Visual Basic.NET فهي لغة برمجة جديدة لا يكمن الشبه بينها وبين اسطورتنا
إلا الاسم Visual Basic وصيغ Syntax بعض الاوامر. فالاسم Visual Basic.NET
ليس سوى لعبة تسويقية قامت بها Microsoft حتى لا تخسر جميع زبائنها من
مبرمجي VB1 حتى VB6 . فقبل ان تشد الرحال الى Visual Basic.NET ، فكر
بالموضوع جيدا لان شد الرحال سيكون الانتقال الى لغة برمجة جديدة، آالانتقال
من VB6 الى # C. ارجو ان لا تعتقد انني ارفض Visual Basic.NET ، بل سأعيد
آتابة الجملة الحيادية التي ذآرتها في المقدمة مع اضافة 12 حرفا واربع نقاط : اذا
آان Visual Basic.NET يقدم لك حلول لمشاآلك، فكن مبرمج ،Visual Basic.NET
واذا آان Visual Basic.NET لا يقدم لك حلول لمشاآلك ، فلا تكن مبرمج Visual
.Basic.NET
اذا آنت ستستمر على احدث الاصدارات VB6 ، فسيكون الكتاب مناسب بتقدير جيد
جدا، اما اذا آنت قد فرغت مساحة في قرصك الصلب HardDisk لتنصيب Visual
Basic.NET عليها، فقد يكون الكتاب مناسب بتقدير مقبول مرتفع او جيد –على
الاآثر، لان ا لفائدة ستكون نظرية وليس عملية، فسيتطرق هذا الكتاب الى بعض
المواضيع التي قد تفيدك –نظريا- في لغتك الجديدة آالبرمجة آائنية التوجه OOP
والتطبيقات متعددة الطبقات nTied Applications والمكونات الموزعة DCOM
والقليل من قواعد البيانات.
ه
مواضيع الكتاب
صفحة المحتوي ات اعطتك فكرة عامة عن مواضيع الكتاب، وهنا اعطيك ملخص لاجزاء
الكتاب الاربعة:
الجزء الاول: الاساسيات
الغرض واضح من عنوان الجزء، فهو يبدأ بتعريفك على بيئة التطوير المتكاملة ل
Visual Basic مع آتابة برنامجك الاول، ثم يبدأ بالتحدث عن النماذج والادوات وشرح
جميع خصائصها، طرقها واحداثها، ثم يقوى مهاراتك البرمجية سواء آانت في لغة
البرمجة BASIC او وظائف مكتبات VB و VBA . المزيد ايضا، ينقلك هذا الجزء الى
المرحلة الثانية وهي البرمجة آائنية التوجه OOP مع تفصيل مبادئها الثلاث:
التغليف Encapsulation ، تعدد الواجهات Polymorphism والوراثة .Inheritance
الجزء الثاني: برمجة قواعد البيانات
يعتبر هذا الجزء المدخل الرئيس الى برمجة التطبيقات المعتمدة على قواعد
البيانات DataBases حيث يبدأ باساسيات طرق الوصول الى البيانات Data Access
ومقرر سريع في لغة الاستعلام SQL ، آما يختص آائنات ADO ويتوغل في تفاصيل
بعض ادوات الجداول وانشاء التقارير.
الجزء الثالث: مواضيع متقدمة
لا تنتقل الى هذا الجزء حتى تكون قد استوعبت الجزء الاول بشكل جيد، فالجزء
يتعدى افاق Visual Basic الى ان يصل الى البرمجة باستخدام اجراءات API وعرض
تطبيقات عملية تؤدي الى زيادة فاعلية ومرونة برامجك، آما يحتوي على فصل
بعنوان "الاستخدام المتقدم للنماذج " حيث يظهر لك امكانيات النماذج بطرق لم
تخطر على بالك . واختم الجزء بفصلين لبرمجة الكائنات المرآبة COM وآل ما
تحتاجه لتطوير مشاريع من نوع ActiveX DLL ،ActiveX EXE و ActiveX OCX مع
مقدمة الى المكونات الموزعة .DCOM
الجزء الرابع: برمجة الانترنت
وهو اصغر اجزاء هذا الكتاب، فهو يحتوي على فصلين الاول يختص ببرمجة صفحات
DHTML الديناميكية ومقدمة الى اللغة الصغيرة VBScript ، والفصل الاخر ينقلك من
برمجة العميل Client الى برمجة الخادم Server باستخدام الخادم IIS لتطوير
صفحات .ASP
و
طريقة تنظيم الكتاب
لم استخدم سوى الطرق التقليدية لتنظيم وتنسيق محتويات الكتاب. فضلت
استخدام الخط Tahoma لوضوحه ودعمه في جميع الاجهزة فهو من النوع
UNICODE ، وهو نفس الخط المستخدم في آتابة الاآواد، والحديث عن الاآواد في
هذا الك تاب يجرني الى اخبارك انك لن تجد الاآواد المستخدمه في الامثلة الا بين
صفحات هذا الكتاب، اما بعض الامثلة الطويلة او التي تتطلب ملفات متعددة لتوضيح
فكرتها، فالرمز سيظهر في اعلى الكود موضحا ان الكود التالي موجود في داخل
الملف المضغوط Codes.ZIP والذي تستطيع انزاله Download من نفس الموقع
الذي انزلت الكتاب منه . ستلاحظ ايضا انني استخدم الاقواس [ و ] اذا قصدت ازرار
في لوحة المفاتيح آ [ ESC] ،[ENTER ] ...الخ. وبالنسبة للاشكال التوضيحية، لم
اآثر من استخدامها خشية ازدياد مساحة ملف الكتاب -والذي قد افصل اجزاءه الى
ملفات مستقلة رغم انني لا احبذ ذلك، والاسلوب المعتمد لترقيم الاشكال يبدأ
برقم الفصل ثم رقم الشكل بذلك الفصل، فلا اعتقد انك تريد البحث عن الشكل
! 9485938
آلمة اخيرة
بالاعتماد على مجهودي، فانه يستحيل علي آتابة ولو حرف واحد من حروف
الكتاب ان لم يكتب الله سبحانه و تعالى التوفيق اولا واخيرا لاتمامه. ما اود ان اقوله
لك عزيزي القارئ، ان الكتاب الذي امام عينيك قد آلفني الكثير والكثير من
المجهود العقلي والبدني ومئات من ساعات عمري محاولا تقديم شئ للمكتبة
العربية الالكترونية من خلاله . اذا آان التفكير في نجاح هذا الكتاب امر بعيد المدى،
فحسبي ان لا يفشل، وان فشل فليس لي سوى ان أعود الى آراسي القراء
باحثا عن مؤلف عربي في منصة الكتاب يرشدني الى ضالتي في مواجهة العصر
الحالي لتقنية المعلومات.
اخيرا، اود ان اعتذر شديد الاعتذار عن عدم ارفاق بريدي الالكتروني على صفحات
الكتاب -لاسباب شخصية - رغم انني لست ملزم بارفاقه طالما آونه آتاب مجاني
للجميع، فلا تتوقع دعما فنيا مني . آما ارجو ان لا تحاول الغاء اسمي من صفحات
الكتاب واستبداله باسمك او اسم شخص عزيز على قلبك، فان ذلك لا يرسم
الابتسامة على شفتاي.
ترآي العسيري
الظهران – يناير 2002
الجزء الاول
الاساسيات
2
الفصل الاول
تعرف على Visual Basic
بسم الله نبدأ وعلى برآته نسير مع الجملة Visual Basic . تختلف وجهات النظر بين
المبرمجين حول تعريف او تصنيف Visual Basic ، هل Visual Basic لغة برمجة ام
برنامج تصميم نوافذ ام منتج متكامل؟ تقنيا، Visual Basic عبارة عن مكتبة من
المكتبات توفر عدة اوامر برمجية متكاملة مع ابنتها – Visual Basic for Application
تختصر VBA . الا ان المتعارف عليه بين المبرمجين هو ان Visual Basic لغة برمجة
وبرنامج تصميم نوافذ ومكتبات تشغيلية، أي باختصار هو منتج متكامل . لذلك، عندما
اتحدث عن Visual Basic في هذا الكتاب فانني اقصد جميع التعريفات السابقة، فلو
ذآرت مزايا لغة Visual Basic فانني اقصد اللغة الحنونة BASIC ،