جامــعة بابـــل
كميـــة الهندســــة
البرمجة بمغة
إعداد
المبرمج/حسين محمد سلمان
2007
بسم اهلل الرحمن الرحيم
الرحمن ,عمم القران ,خمق
اإلنسان ,عممه البيان
صذق هللا انؼهي انؼظيم
الرحمن ()4-1
2
فهشس انمحتىيــــبت
Contents
المحتويات
3
االهداء
6
شكر وتقدير
7
مقدمة
8
الفصل االول/بيئة التطوير Visual Basic
17-10
1-1مقدمة
10
2-1الدخول الى المغة
10
3-1فتح مشروع جديد
11
4-1فتح مشروع قديم
11
5-1اضافة نموذج جديد
11
6-1شريط القوائم
13
7-1الشريط القياسي
15
الفصل الثاني/نوافذ االدوات والخصائص
23-18
1-2نافذة تصميم النموذج
18
2-2مربع االدوات
18
3-2نافذة الخصائص
21
36-24
الفصل الثالث/بناء مشروع جديد
1-3مراحل تصميم المشروع
24
2-3مثال توضيحي
33
3-3تسمية الكيانات
34
50-37
الفصل الرابع/المتغيرات والبيانات
1-4الثوابت والمتغيرات
37
2-4تعريف الثوابت والمتغيرات
37
3-4اشكال تصريح البيانات
37
4-4انواع البيانات
39
3
5-4ادخال واخراج البيانات
41
6-4مثال توضيحي 1
41
7-4مثال توضيحي 2
44
8-4دالة االدخال InputBox
46
9-4اخراج البيانات
47
10-4دالة االخراج MsgBox
48
69-51
الفصل الخامس/اتخاذ القرار وعبارات التكرار
1-5مقدمة
51
2-5عوامل المقارنة
51
3-5العوامل المنطقية
52
4-5عبارة IFالشرطية
52
5-5مثال توضيحي
55
6-5الجممة الشرطية Select Case
56
7-5مثال توضيحي
57
8-5عبارة التكرار Do
59
9-5مثال توضيحي
60
10-5عبارة Forالتكرارية
62
11-5امثمة توضيحية اضافية
63
91-70
الفصل السادس/المصفوفات
1-6مقدمة
70
2-6مصفوفات المتغيرات
70
3-6انشاء المصفوفة
70
4-6الصيغة العامة لممصفوفة
70
5-6التعامل مع المصفوفة بداخل شفرة البرنامج
72
6-6امثمة توضيحية حول المصفوفات
72
7-6العمميات الحسابية والمصفوفات
81
4
88
8-6ضرب المصفوفات الثنائية
97-92
الفصل السابع/الدوال والبرامج الفرعية
1-7مقدمة
92
2-7الدوال
92
3-7دوال التعامل مع النصوص
95
4-7البرامج الفرعية
96
108-98
الفصل الثامن/الممفات وقواعد البيانات
1-8الممفات
98
2-8الممفات المتتابعة
98
3-8الدوال المستخدمة مع الممفات
101
4-8الممفات ذات الدخول العشوائي
101
5-8قواعد البيانات
105
6-8طرق التعامل مع قواعد البيانات
106
7-8االداة Data
108
109
المصادر
5
إه ـ ـداء
إلى ينبوع الحنان:
أبي وأمي......
إلى سندي في الحياة:
إخوتي وأخواتي......
إلى عطر حياتي:
زوجتي......
إلى فـلذات كبدي:
زهراء ،فـاطمة ......،
حسين
6
شكر وتقدير
أقدـ خالص شكري وتقديري إلى كؿ مف ساعدني وشجعني في اعػداد ىػذا الكتػاب واخػص االػذكر
مػػنيـ شػػقيقي وسػػندي فػػي ال يػػاة د جاسػػـبااوم مد وأخػػي وزميمػػي العزيزالماػػرمف فػراس الطري ػػي
وكػػذلؾ زمي ػػي فػػي الكميػػ .مػػنيـ د سػػعد سػػتاح والسػػيدة انتظػػار جػػاار أقػػدـ شػػكري وامتنػػاني إلػػى
كاف .الزميء في قسـ تدريب ال اساات سااقا في كمي .اليندس.
كذلؾ ان ني إجيال لألستاذ التاضؿ الدكتور المينػدس ستارادرسػدخاف مػدير قسػـ الشػؤوف العمميػ.
والعيقات الثقافي .في ر اس .جامع .اااؿ وذلؾ لتشجيعو اليم دود لي في إعداد ىذا الكتاب
7
المقدمـــة
اف التطػػور اليا ػػؿ فػػي اسػػتخداـ ال اسػػاات فػػي كافػػ .مجػػاالت ال يػػاة يػػدعو الػػى اف يواكػػب الجميػ
ىذا التطور ،ولما كأنت لغات الارمج .ىي الشئ الممموس في استخداـ ىذا الجياز العمػيؽ فػي
معناه والصغير في جمو يث اف ىذه المغات ىي الواجيو ايف المارمجيف مف جي .وايف جيػاز
ال اساو مف جي .اخرى
الذي دفعني الى اعداد ىذا الكتيػب ىػو ال اجػو المم ػ .الػى مصػدر مختصػر ومتيػد لممسػاعده فػي
تعمػـ الارمجػػو امغػػ .الارمجػػ .كالايسػػؾ المر ػػي Visual Basicك يػػث اف ىػػذه المغػػو مػػف المغػػات
الت ػػي يمك ػػف اس ػػتخداميا ف ػػي كاف ػػ .المج ػػاالت العممي ػػ .واليندس ػػي .ك ػػذلؾ ف ػػاف ال ػػنقص اليا ػػؿ ف ػػي
مصػػادر ىػػذه المغػػو العرايػػ .والعراقيػػ .االػػذات و اجػػ .الطماػػ .الييػػا كػػؿ ىػػذا دفعنػػي الػػى اعػػداد ىػػذا
الكتيب
اننػػي قمػػت اتػػدريس وتػػدريب الطماػػ .ىػػذه المغػػ .الكثػػر مػػف ثػػيث سػػنوات متواصػػم .لطماػػ .المر مػػ.
الثاني .في قسـ اليندس .المدني/.كمي .اليندس .منذ عاـ 2002وذلؾ م أكؼء االساتذة فػي القسػـ
يتػػالؼ الكتيػب مػػف ثمانيػػ .فصػػوؿ التصػػؿ االوؿ يتضػػمف شػػرح متصػػؿ لاي ػػ .ىػػذه المغػػ .واشػػرطتيا
الموجودة في الواجيو الر يسي.
التصؿ الثاني تناوؿ نافذة االدوات ونافذة الخصا ص يث تعد ىاتيف النافذتيف مف اىـ نوافذ ىذه
المغو ويجب عمى جمي مستخدمي ىذه المغو تعمـ واستخداـ ىاتيف النافذتيف
التصػػؿ الثالػػث تضػػمف كيتيػػ .انػػاء مشػػروع جديػػد وكيتيػػ .التعامػػؿ معػػو مػػف خػػيؿ م ار مػػو الػػثيث
مر م .اعداد الواجيو ومر م .اعداد الخصا ص ومر م .الارمج.
التصػػؿ ال اراػ تػػـ التعػػرؼ اشػػكؿ متصػػؿ عمػػى انػواع المتغيػرات والايانػػات وكيتيػػ .تعريتيػػا والتعامػػؿ
معيا
التصؿ الخامس تـ شرح العاارات الشرطي .وعاارات التكرار وكيتي .استخداميا والتعامؿ معيا
التصؿ السادس تناوؿ اشكؿ متصؿ المصتوفات انوعييا ا ادي .االاعاد ومتعددة االاعاد
8
التصؿ الساا تناوؿ كيتي .تعريؼ وتصػري الػدواؿ والاػرامف الترعيػ .وكيتيػ .التعامػؿ معيػا واشػكؿ
متصؿ
التصؿ الثامف تناوؿ الممتات اشكؿ متصؿ كذلؾ تناوؿ كيتيػ .التعامػؿ مػ قواعػد الايانػات واشػكؿ
متصؿ
اف جمي ماتناولتػو ىػذه التصػوؿ مػدعـ ااالمثمػ .التوضػي ي .وفػي جميػ ال ػاالت المطروقػ ، .امػا
عػػف االخطػػاء فانػػا فػػي اعتقػػادي اليوجػػد شػػيء مػػف كتػػاب او ممزمػػ .او أي ما ػػث ىػػو خػػاؿ مػػف
االخطػػاء وكامػػؿ الف العمػػـ فػػي جميػ المجػػاالت يتطػػور ويتقػػدـ ويتغيػػر يػػوـ اعػػد االخػػر كػػذلؾ فػػاف
كؿ كتاب او ا ث اليخمو مف االخطاء واليتوات الطااعي .ا يانا والعممي .ا ياف اخرى
9
انفصم االول/بيئة انتطىيش Visual Basic
-1-1مقدمـة
إف لغ .الارمج .امغ Visual Basic .وتق أر اػ ب فيجواؿ ايسؾ
ي ػػث إف
Visual
تعن ػػي المر ػػي و
ومعناىا الايسؾ المر ػي
BASICتعن ػػي لغ ػػ .ايس ػػؾ االعتياديػ ػ.ب Basic
، Applications System for Interchange Codesتكػاد تكػوف ىػذه المغػ .أىػـ لغػات
الارمجػ ػػ .فػ ػػي نظػ ػػاـ التشػ ػػغيؿ Windowsوىػ ػػي مػ ػػف المغػ ػػات التػ ػػي تعتمػ ػػد عمػ ػػى ماػ ػػدأ ارمجػ ػػ.
اليدؼ Object Oriented Programmingومختصرىا ىوب OOPوتسمى أيضا االارمج.
الكياني.
إف أىمي .ىذه المغ .تأتي مف سيول .االسػتخداـ وسػيول .كتااػ .الارنػامف فييػا وكػذلؾ متانػ .ىػذه
المغ ػػ .وتعاممي ػػا مػ ػ تطايق ػػات أخ ػػرى مني ػػا تطايق ػػات قواع ػػد الايان ػػات وتطايق ػػات الرس ػػـ اال اس ػػا.
وتطايقات االرتااط اشاكات االتصاالت
-2-1الدخول إلى المغة Visual Basic
يتـ الدخوؿ إلى ىذه المغ .مف خيؿ الممؼ Microsoft Visual Basicوىذا الممؼ أما
أف يكوف موجود ضمف األمر Start
)Programs (all programs
Microsoft visual studio
Microsoft Visual Basic
أو عف طريؽ ايكون .موجودة عمى سط المكتب Desktopت ت عنواف Microsoft Visual
Basic
عند الػدخوؿ لاي ػ .ىػذه المغػ .سػوؼ تظيػر نافػذة فييػا مجموعػ .مػف الرمػوز التػي تاػيف كػؿ األنػواع
المتا .لعمؿ المشروع الذي تريد عممو ،إف أىـ ىذه األنواع ىو النػوع standard.exeوىػو النػوع
القياسي كما موض في الشكؿ رقـ ب1
01
ت توي النافذه الماين .في الشكؿ رقـ ب 1عمى ثيث صت ات ىي -:
-1صػػت و 1واسػػميا : Newيػػث تظيػػر فييػػا كػػؿ أنػواع المشػػاري المتا ػػ .فػػي لغػػVisual .
,Basicنقػػوـ ااختيػػار النػػوع األوؿ فييػػا وىػػو قياسػػي standard exeونضػػغط عمػػى openب
األن ػواع األخػػرى تخػػص اسػػتخدامات خاصػػ .يمكػػف أف تعمػػؿ فػػي اي ػػ Visual Basic .سػػوؼ
تظير لنا إطار المشروع ب أومػا يسػمى امسػتوعب المشػروع
المشػروع الػذي تػـ فت ػ .ت ػت اسػـ
project1واداخم ػػو نم ػػوذج اس ػػمو ، form1ى ػػذه األس ػػماء ى ػػذه يض ػػيتيا مع ػػالف المغ ػػ .اش ػػكؿ
تمقػػا ي فػػفذا فت نػػا مشػػروع أخػػر فانػػو سػػوؼ ي مػػؿ اسػػـ ىػػو project2واداخمػػو نمػػوذج اسػػمو
form1
صفحو 1
صفحو 2
صفحو 3
مجموعة أنواع المشاريع
المتاحة ضمن لغة
Visual Basic
شكل رقم ( )1يوضح أنواع املشاريع املتاحة ضمن بيئة لغة Visual Basic
00
-2صت و 2واسميا : Existingيث ت وي عمػى أسػماء المشػاري الموجػودة والتػي تػـ عمميػا
في وقت سااؽ
-3صت و 3واسميا : Recentيث ت وي ىذه النافذة عمى آخر مجموعو مػف المشػاري التػي
تـ فت يا او عمميا او تـ التعامؿ معيا
،نضغط عمى المتتاح openلمموافق .عمى فت مشروع جديد
ت تػػوى اي ػػ .الارمجػػ .فاج ػواؿ ايسػػؾ عمػػى أدوات ارمجػػ .لمسػػاعدتؾ عمػػى انػػاء ا ػرامف
Basicكما موض .واالتتصيؿ في الشكؿ رقـب2
02
Visual
الشريط القياسي
شريط القوائم
نافذة مستكشف البرنامج
النموذج
نافذة الخصائص
نافذة عرض النموذج
شكل رقم ( )2يوضح بيئة لغة الربجمة Visual Basic
03
مربع األدوات
إطار المشروع
-3-1فتح مشروع جديد
يمكف فت مشروع جديد :
-1مف النافذة الموض .في الشكؿ رقـب 2واختيار
File
New
New project
أو
-2ااختيار أوؿ رمز مف اليسػار فػي الشػريط القياسػي بالػذي يػاتي شػر و االتتصػيؿ ال قػا عنػد
اختيار أي مف االختياريف سوؼ تظير لنا النافذة الموض و في الشكؿ ب1
-4-1فتح مشروع قديم
يمكػػف فػػت مشػػروع قػػديـ تػػـ عممػػو ب تص ػ ي و اػػا سػػتخداـ لغػػ Visual Basic .ويمكػػف فت ػػو
ااستخداـ طريقتيف ىما-:
-1مف قا م.
File
Open
-2ااسػػتخداـ الش ػريط القياسػػي وذلػػؾ االضػػغط عمػػى األيقونػػ .التػػي ت مػػؿ شػػكؿ مجمػػد بfolder
متتوح
سوؼ تظير نافذة فييا جمي المشػاري المخزونػ .فػي ال اسػا .والتػي اامتػدادب VBPوالموضػ و
في الشكؿ رقـب 1الصت و الثاني Existing .ب جمي المشاري التي تصمـ ااستخداـ ب VB6
يكػ ػػوف امتػ ػػدادىا ب VBP
يعػ ػػد فػ ػػت ت ديػ ػػد المشػ ػػروع الم ػ ػراد إظيارىػ ػػا والضػ ػػغط عمػ ػػى األمػ ػػر
OPEN.
-5-1إضافة نموذج جديد:
00
كؿ مشروع يتـ فت و فانو ي توي عمى نموذج اداخمو بكما في الشكؿ رقـ 2وىذا شػكؿ
تمقا ي واليمكف إف يكوف ىنالؾ مشروع ال ي توي عمى نموذج ويمكف أف ي توي كؿ مشروع عمػى
أكثر مف نموذج وا د
يمكػػف إضػػاف .نمػػوذج جديػػد إلػػى المشػػروع ال ػػالي ب الموجػػود الي ػاً عمػػى الشاشػػ .وذلػػؾ اواسػػط.
طريقتيف ىما-:
-1مف قا م.
Project
add form
-2ااستخداـ الشريط القياسي وذلؾ االضغط عمى األيقون .الثاني .مف اليسار في الشريط القياسي
فػػي كػػي مػػف الط ػريقتيف سػػوؼ تظيػػر لنػػا نافػػذة فييػػا جمي ػ النمػػاذج المتا ػػ .فػػي لغػػVisual .
Basicكما في الشكؿ رقـب3
مجموعة أنواع
النماذج المتاحة
ضمن لغة
Visual
Basic
شكل رقم ( )3يوضح انواع النماذج المتاحو في لغة Visual Basic
02
يتضػػمف الشػػكؿ اعػػيه صػػت تيف االولػػى واسػػميا Newوالتػػي ت تػػوي عمػػى انػواع النمػػاذج المتا ػػو
في لغ، Visual Basic .وصت و اخرى اسميا Existingوالتي ت توي عمى النماذج التي تػـ
انشاؤىا في وقت سااؽ نقوـ اتاشير النوع األوؿ باوالنوع المراد إنشاؤه ثـ ونضغط OPEN
-6-1شريط القوائم-:
يزود شريط القػوا ـ وصػوال إلػى معظػـ األوامػر التػي تػت كـ ااي ػ .الماػرمف فيجػواؿ ايسػؾ يػث
تعمػػؿ االوامػػر والق ػوا ـ مثممػػا تعمػػؿ فػػي كػػؿ الا ػرامف المتوافقػػ .م ػ نظػػاـ التشػػغيؿ windows
و يمكف الوصوؿ إلييا اواسط .التأرة أو لو .المتاتي
عن ػػد ف ػػت مش ػػروع جديػ ػد فس ػػوؼ تظي ػػر ناف ػػذة ت ت ػػوى اطياع ػػ .ال ػػاؿ عم ػػى مجموع ػػ .ف ػػي النواف ػػذ
واألشػػرط .قد تظيػػر الواجيػػ .وال ت تػػوى عمػػى أي نافػػذة أو ش ػريط إال ش ػريط الق ػوا ـ الػػذي يظيػػر
اشػػكؿ تمقػػا ي م ػ أي تطايػػؽ ضػػمف نضػػاـ التشػػغيؿ ،WINDOWSيمكػػف إظيػػار أي نافػػذة أو
شػريط مػػف خػػيؿ قا مػػ ،VIEW .وفيمػا يمػػي شػػرح لم تويػػات شػريط القػوا ـ كػػؿ أمػػر فػػي شػريط
القوا ـ ىو عاارة عف قا م .أوامر وايعازات-:
-1-6-1القائمة :FILE
ت توي ىذه القا م .عمى مجموع .مف األوامر الخاص .االتعامؿ م المشػاري مثػؿ NEW
إلنشػػاء مشػػروع جديػػد و OPENلتػػت مشػػروع سػػااؽ ،و تػػظ المشػػاري عػػف طريػػؽ SAVEأو
SAVE AS,و ػػذؼ المشػػروع REMOVEوخمػػؽ نسػػخ .تنتيذيػػ .مػػف التطايػػؽ MAKE
PROJECT.EXEااإلضاف .إلى أمر الطااع PRINT .والخروج Exit
-2-6-1القائمة :EDIT
ت تػػوي ىػػذه القا مػػ .عمػػى أوامػػر متشػػااي .لمػػا ت تويػػو قا مػػEDIT .
فػػي مختمػػؼ
التطايقات ،فيي ت توي أوامر القص والنسخ والمصؽ وال ذؼ لمنصوص ولعناصر الت كـ وأوامػر
الا ث findواالستاداؿ . replace
-3-6-1القائمة : VIEW
تيتـ أوامر ىذه القا م .االت كـ اظيور مختمؼ نوافذ VB,إذ يمكف مف خيؿ ىذه القا مػ.
إختاء واظيار عدة نوافذ مف اي VB .
-4-6-1القائمة : project
03
ت توي ىذه القا م .مجموع .مف األوامر اإلضافي .مكونات جديدة إلى المشروع مثؿ نماذج
جديدة وو دات نمطي .ب MODULEوممتات أخرى
-5-6-1القائمة : FORMAT
تسػػتخدـ ىػػذه القا مػػ .لت ديػػد ىي ػػ .و جػػـ عناصػػر الػػت كـ الموجػػودة عمػػى النمػػوذج والتااعػػد
فيما اينيا
-6-6-1القائمة
: DEBUG
ت وي ىذه القا م .عمى مجموع .أوامر خاص .ااختاار التطايؽ ،وتقوـ افظيار النتا ف ضمف
نوافذ مخصص .في اي VB .كما يمكػف مػف خػيؿ ىػذه القا مػ .تنتيػذ التعميمػات الارمجػ .خطػوه
خطوه ،وايذا يمكف مراقا .أداء المشروع
-7-6-1القائمة :RUN
مػػف خػػيؿ ىػػذه القا مػػ .يمكػػف تنتيػػذ التطايػػؽ ضػػمف اي ػػ ، VB .يػػتـ اػػدء التنتيػػذ ااسػػتخداـ
األمػر STARTأو F 5ويسػتخدـ األمػر breakإليقػاؼ التطايػؽ توقتػاً مؤقتػاً فػي المر مػ.
ال اليػػ .ب مػػف خػػيؿ التنتيػػذ ،واألمػػر
RESTARTإلعػػادة التنتيػػذ مػػف الادايػػ .إمػػا األمػػر
CONTINUEفيسػتخدـ السػت ناؼ التنتيػذ مػف النقطػ .التػي تػـ فييػا التوقػؼ ،األمػر
END
ىو إلنياء التنتيذ
-8-6-1القائمة : QUERY
تكػػوف األوامػػر مػػف ىػػذه القا مػػ .متا ػػ .فقػػط عنػػدما نقػػوـ افنشػػاء اسػػتعيـ مػػف خػػيؿ األداة
MICROSOFT QUERY BUILDER
-9-6-1القائمة DIAGRAM:
تك ػ ػوف أوامػ ػػر القا مػ ػػ .متا ػ ػػ .عنػ ػػدما يتتاعػ ػػؿ التطايػ ػػؽ م ػ ػ
SERVER
SQLأو
ORACALEإلنشاء أو لتعديؿ مخطط قاعدة الايانات
-10-6-1القائمة : TOOLS
ت تػػوي ىػػذه القا مػػ .عمػػى أدوات مختمتػػ .ومتنوعػػ .مثػػؿ األمػػر OPTIONالػػذي يتػػت نافػػذة
واريو لتعديؿ خصا ص اي .التطوير
-11-6-1القائمة :ADD-In
04
ت ت ػػوي عم ػ ػاوامر متعمقػ ػ .اتقني ػػات وكا ن ػػات خارجي ػػ .ي ػػتـ دمجي ػػا مػ ػ اي ػػ .التط ػػوير كم ػػا ت ت ػػوي
األمػػر Visual Data Managerالػػذي يػػتـ مػػف خػػيؿ الوصػػوؿ إلػػى ارنػػامف مػػدير الايانػػات
Visdata
-12-6-1القائمة : WINDOW
يتـ مف خيؿ ىذه القا م .إدارة نوافذ اي .التطوير VB
-13-6-1القائمة :HELP
ي ػػتـ م ػػف خ ػػيؿ ى ػػذا األم ػػر اس ػػتدعاء نظ ػػاـ المس ػػاعدة الت ػػوري لمغ ػػVisual Basic .
وىو) MSDN
-7-1الشريط القياسي لمغة :VB
ىذا الشريط إذ لـ يكف موجودا فيمكف اضػياره مػف خػيؿ القا مػ View/toolbars .ىػذا الشػريط
ي توى عمى جمي االيعازات الميم .فى لغ VB .يث يمكف التعرؼ عمى أسماء ىذه االيكونات
مف خيؿ نص المساعدة السري الذي يظير عند وضػ مؤشػر التػأره عمػى الرمػز واػدوف الضػغط
عميو وىى كما يمي ادا مف اليسار-:ب ىذه األوامر عاارة عف رموز ب
ICONS
-1-7-1مشروع جديد :استخداـ ىذه االيقون .يؤدى الى خمؽ مشروع جديد ااالضاف .لممشروع
ال الي
-2-7-1إضافة نموذج :تؤدى ىذه االيقون .الى اضاف .نموذج جديد الى المشروع ال الى
-3-7-1تحرير قائمـة -:menuىػي أداة رسػومي .تػدير الاػرامف فػى القػوا ـ .تتػي ىػذه االيقونػ.
لممستخدـ اضاف .قوا ـ جديدة وتعػديؿ القػوا ـ الموجػودة واعػادة ترتيايػا و ػذؼ القػوا ـ القديمػ .كمػا
يتػ ػػي لػ ػػؾ اضػ ػػاف .مػ ػػؤثرات
خاصػ ػػ .عمػ ػػى الق ػ ػوا ـ ،كمتػ ػػاتي الوصػ ػػوؿ وعيمػ ػػات االختيػ ػػار
واختصارات لو .المتاتي
-4-7-1فتح مشروع موجود فى ال اساو ومصمـ فى وقت سااؽ
- 5-7-1خزن المشروع والنموذج
-6-7-1قطـــع -:ي ػػتـ ت دي ػػد ج ػػزء م ػػف ش ػػترة المش ػػروع او أي كي ػػاف وقطع ػػو ( أي إزالت ػػو م ػػف
النموذج
05
– 7-7-1نسخ -:يتـ ت ديد أي كياف ونسخو ب ىنا الكياف المستنسخ ي تتظ اشػيء خصػا ص
الكياف االصمى
-8-7-1لصق -:يتـ لصؽ الجزء او الكياف الذى تـ نسخو او قطعو
-9-7-1بحث -:الا ث عف كياف او كممو
-10-7-1التراجع -:التراج عف خطوه معينو الى الخطوه السااقو ليا
-11-7-1التقدم -:يستخدـ ىنا االمر اعد استخداـ التراج ،أي التقدـ الى الخطوه التاليو اعد
اف تراجعنا عنيا
-12-7-1التنفيـذ -:ػت خػاالت ىػذا االمػر يمكػف تنتيػذ المشػروع او اعػادة تنتيػذ
RESTART
-13-7-1التوقف -: Breakتستخدـ ىػذه االيقونػو اليقػاؼ التنتيػذ ولكػف لػيس التوقػؼ اشػكؿ
نيا ى أي انو يمكف است ناؼ التنتيذ مف النقط .التى تـ التوقؼ فييا
-14-7-1االنتهـــاء -: ENDىن ػػا يػػتـ إني ػػاء التنتيػػذ اش ػػكؿ قطعػػي أي إذا أردن ػػا التنتيػػذ مػػرة
أخرى فانو سوؼ يتـ التنتيذ مف الاداي .وليس مف النقطو التي تـ االنتياء عندىا
-15-7-1مستكشــف المشــروع -:PROJECT EXPLORERعنػػد الضػػغط عمػػى ىػػذه
االيقونو فانو سوؼ تظير نافذة صغيره عمى يميف الشاشػ .ت تػوى عمػى المشػاري ال اليػ .التػي تػـ
انا يػػا فػػي المغػػ .وك ػذلؾ النمػػاذج الموجػػودة فػػي كػػؿ مشػػروع يػػث يمكػػف إظيػػار أي نمػػوذج وذلػػؾ
االضغط عميو مرتيف امتتاح التارة األيسر
-16-7-1نافذة الخصائص -: Properties windowىذه االيقونو تستخدـ إلظيار نافذة
خصا ص تظير عادة في يميف الشاش .ت توى عمى خصػا ص الكيػاف ال ػالي وسػوؼ نػاتى عمػى
شرح ىذه النافذة اشكؿ متصؿ ال قا
-17-7-1نافــذة توضــع النمــاذج -:FORM LOYOUT WINDOWىػػذه األيقونػػ.
سوؼ تظير نافذة في أستؿ يميف الشاش.
يث يمكف ااستخداـ ىذه النافذه ت ديد موض ظيػور
النماذج عمى شاش .مستخدـ عند تشغيؿ التطايؽ
-18-7-1مسـتعرض الكيانــات -: OBJECT BROWERتقػوـ ىػػذه االيقونػ .ااظيػػار
نافذه مستعرض الكيانات ب الكا نػات ،يػث مػف خػيؿ ىػذه النافػذه يمكػف لمماػرمف اف يسػتعرض
06
جميػ الكيانػػات التػػى يسػػتخدميا فػػي عمميػػ .التطػػوير فيتعػػرؼ عمػػى خصػػا ص وطػػرؽ وا ػػداث كػػؿ
كا ف
-19-7-1أدوات التحكم -:control toolsاالنقر عمى ىذه االيقونو سوؼ تظير نافذة عمى
يسار الشاش .يطمؽ عمييا انافذة االدوات ب او مرا االدوات ت توى عمى عناصر ت كـ أساسي.
بintrinsic controls
التي يمكػف وضػعيا عمػى النمػوذج فػى مر مػ .التصػميـ ىػذه االدوات
سوؼ ناتى عمى شر يا االتتصيؿ ال قا
07
انفصم انثبني/نىافز االدوات وانخصبئص
-1-2نافذة تصميم النموذج
ني ػػظ أف النمػػوذج موجػػود عمػػى إطػػاره الخػػارجي مقػػااض وىػػي أشػػاو امراعػػات صػػغيره ذات لػػوف
مميز موجودة ىذه المقااض في الزاويا األرا وفي أواسط األضيع أي أف عددىا ثمانيػ .مقػااض
وىذا يعني أف الكياف التعاؿ الياً ىو النموذج ا يث أف مرا الخصا ص ي توي عمى خصا ص
الكياف التعاؿ الياً وىو النموذج وفا دتيا في تصغير وتكاير الشاش.
-2-2مربع األدوات:
كمافي شكؿ رقـب4
طورة Picture
مؤشر pointer
مربع نض Text Box
عنوان (حسميه) Label
زر امر Command button
اطار Frame
مربع خيار Option
مربع اخخيار Check
مربع قائمه List Box
مربع قائمه منسدله ComboBox
شريط انسالق عمودي VScrollBar
شريط انسالق افقي HScrollBar
موقج (ساعت حوقيج) Timer
مربع مشغالث األقراص DriveListBox
مربع قائمت المجلداث FolderListBox
مربع قائمت الملفاث FileListBox
شكل Shape
خط Line
طورة Image
بياناث Data
مربع االرحباط بالبرامجياث االخرى OLE
شكل رقم ( )4يوضح صندوق االدوات
08
شكل األداة
اسمها
مؤشر
Pointer
معناها واستخدامها
التعتاػ ػ ػ ػ ػ ػ ػ ػػر ىػ ػ ػ ػ ػ ػ ػ ػػذه اداة مػ ػ ػ ػ ػ ػ ػ ػػف ادوات الػ ػ ػ ػ ػ ػ ػ ػػت كـ التػ ػ ػ ػ ػ ػ ػ ػػي
توضػ ػ ػ ػ ػ ػ ػ ػ ػ ػ عمػػ ػ ػ ػ ػ ػ ػ ػ ػػى النم ػ ػ ػ ػ ػ ػ ػ ػ ػػوذج ولكنيػػ ػ ػ ػ ػ ػ ػ ػ ػػا تسػ ػ ػ ػ ػ ػ ػ ػ ػ ػػتخدـ
لمتأشير عمى الكيانات الموجودة في النموذج
مربع صورة
تسػ ػ ػ ػ ػ ػ ػ ػ ػ ػػتخدـ ىػ ػ ػ ػ ػ ػ ػ ػ ػ ػػذه االداة لرسػ ػ ػ ػ ػ ػ ػ ػ ػ ػػـ مرا ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ صػ ػ ػ ػ ػ ػ ػ ػ ػ ػػورة
Picture
عمى النمػوذج يمكػف اف نضػ فيػو أي تشػكيم .مػف صػورة او
مجموع .صور او صػورة مػ شػكؿ ىندسػي أي انيػا تسػم
لنا اتشكيؿ صوره
عنوان (تسمية)
Label
سب رغاتنا.
يس ػ ػػتخدـ لوضػ ػ ػ عنػ ػ ػواف
labelعم ػ ػػى نم ػ ػػوذج يمك ػ ػػف
مف خيلو توضي عنواف الكياف يكوف اجاناو مثيً.
زر أمــــــــــــــــــــــــــــر تس ػ ػػتخدـ ى ػ ػػذه االداة لوضػ ػ ػ مت ػ ػػاتي عم ػ ػػى النم ػ ػػوذج عن ػ ػػد
Command
Button
ضغطيا سوؼ يتـ تنتيذ اجراء معيف
اطارframe
تسػ ػ ػ ػ ػ ػ ػ ػػتخدـ ىػ ػ ػ ػ ػ ػ ػ ػػذه االداة لوض ػ ػ ػ ػ ػ ػ ػ ػ اطػ ػ ػ ػ ػ ػ ػ ػػار ممكػ ػ ػ ػ ػ ػ ػ ػػف اف
يجم اداخمو عدة كيانات وادوات اخرى
مربـع نـص textيسػ ػ ػػتخدـ الدخػ ػ ػػاؿ واخ ػ ػ ػراج نػ ػ ػػص معػ ػ ػػيف ويعتاػ ػ ػػر افضػ ػ ػػؿ
box
اداة لمتعامؿ م النصوص .
مفتـــــــــــــــــــــــــــــــاح خ ػ ػ ػ ػػيؿ ى ػ ػ ػ ػػذه االداة يمك ػ ػ ػ ػػف وضػ ػ ػ ػ ػ خي ػ ػ ػ ػػار وا ػ ػ ػ ػػد عم ػ ػ ػ ػػى
خيـــار optionالنمػ ػ ػ ػ ػػوذج واكػ ػ ػ ػ ػػر مػ ػ ػ ػ ػػف خيػ ػ ػ ػ ػػار وذلػ ػ ػ ػ ػػؾ كاسػ ػ ػ ػ ػػموب لتنتيػ ػ ػ ػ ػػذ
button
مربــع تــدقيق
Check Box
خيار وا د مف مجموع .خيارات .
تستخدـ لوض
مرا اختيػار وا ػد او اكثػر عمػى نمػوذج
والذي يمكف مف خيلو تصعيد مرا اختيار وا د اكثر.
09
مربـــــــــع قائمـــــــــة
List box
مربـــــــع القائمـــــــة
يمكننػػا ىػػذا الكيػػاف مػػف التعامػػؿ م ػ الق ػوا ـ يػػث انػػو يػػتـ
ادخاؿ واسترجاع أي عنصر مف والى تمؾ القا م. .
ىػػذه االداة شػػايو الػػى ػػد كايػػر االداة التػػي تسػػاقيا ب مراػ
المنسدله
قا م ػػ .س ػػوى ف ػػرؽ قمي ػػؿ ى ػػو اف ى ػػذه االداة التظي ػػر اش ػػكؿ
Combobox
مسػػتطيؿ وفيػػو قا مػػ .عناصػػر ولكػػف تظيػػر اشػػكؿ مسػػتطيؿ
صغير ي توي عم عنصر وا ػد ب اخػر عنصػر تػـ اسػتخدامو
امػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػا اذا اردنػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػا
اسػػػتخداـ عنصػ ػػر غي ػ ػره ىنالػ ػػؾ خي ػػاريف ىػ ػػو امػ ػػا اف نكتػ ػػب
العنص ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػر
المرغوب او او نضغط السيـ الموجود في اليميف فتضػير
قا مػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػ.
مستدل .ليستؿ ونختار العنصر المراد منيا
شـــــــريط انـــــــزالق ىذه االداة تستخدـ لوض شػريط انػزالؽ عمػودي الي كيػاف
عمـــــــــــــــــــــــــــود
نريد وض الشريط لو
Vscrollbar
شـــــــريط انـــــــزالق نتس االداة السااق .لكف يكوف شكميا افقي
افقـــــــــــــــــــــــــــــــــــي
Hscrollbar
مربـــــــــع قائمـــــــــة تسػػتخد ىػػذه االداة لوض ػ مرا ػ قا مػػ .منسػػدل .ي تػػوي عمػػى
مشغالت Drive
اس ػػماء مشػػػغيت االق ػ ػراص ي ػػث ان ػػو س ػػوؼ ياخ ػػذ اسػػػماء
list box
مشغيت االقراص المتا .في ال اسا.
المؤقت Timerتس ػػتخدـ ى ػػذه االداة لوضػ ػ مؤق ػػت عم ػػى النم ػػوذج يس ػػتخدـ
لتوقيػػت العديػػد مػػف العمميػػات واال ػػداث الممكػػف اجراؤىػػا فػػي
المشروع
مربع قائمة ممف يستخدـ لوض مرا قا م .ي توى عمى قا م .ااسماء ممتات
21
File list box
ايانيػػو اامتػػداد معػػيف وموجػػوده فػػي مجمػػد تػػـ اختيػػاره اواسػػط.
االداة بمرا قا م .مجمدات
مربـــــــــع قائمـــــــــة يس ػػتخدـ لوضػ ػ مراػ ػ قا م ػػ .ي ت ػػوى عم ػػى قا م ػػ .ااس ػػماء
مجمـــدات
ب االدلػ ػ ػػو
Dirالمجمػ ػ ػػدات
list box
اقراص معيف
خط Line
يستخدـ لرسـ خط عمى النموذج
فػ ػ ػػى مشػ ػ ػػغؿ
شكل shapeيستخدـ لرسـ شكؿ ىندسي عمى النموذج
بيانات data
تسػػتخدـ ىػػذه االداة ليرتاػػاط اقواعػػد الايانػػات والتعامػػؿ مػ ػ
ايانات ي ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػا
كعرض الايانات او ت ديثيا او إضاف .ايانات جديدة
صورة Image
تستخدـ ىػذه االداة لوضػ صػورة معينػ .عمػى النمػوذج وىػذه
الصورة يتـ س ايا مف ممؼ في ال اسا.
OLEىػ ػػذه االداة تسػ ػػتخدـ ليرتاػ ػػاط اانظمػ ػػ .التطايقػ ػػات االخػ ػػرى
(Object
Linkingالموج ػ ػػودة ف ػ ػػي ال اس ػ ػػا .والت ػ ػػي تعم ػ ػػؿ ض ػ ػػمف اي ػ ػػ .نظ ػ ػػاـ
) Embeddingالتشغيؿ Windows
-3-2نافذة الخصائص-:
ت توي ىذه النافذة عمى مجموع .مػف الخصػا ص التػى ت ػدد مواصػتات عنصػر الت كـ ت ػدد كػؿ
خاصي .ميزة معينو لمعنصػر كػالطوؿ والعػرض ولػوف الخمتيػ .يػث تعػرض ىػذه النافػذة خصػا ص
الكيػػاف الم ػػدد اليػػا وعنػػد انتقػػاؿ الت ديػػد الػػى عنصػػر اخػػر بعنػػد اختيػػار عنصػ ار خػر ،أي جعمػػو
اداخؿ مقااض وذلؾ االضغط عميو امتتاح التارة االيسر مرة وا دة ،كما في شكؿ رقـب5
20
سػػتظير تمقا يػػا خصػػا ص ىػػذا العنصػػر فػػى القا م .خصػػا ص كػػؿ كيػػاف تختمػػؼ عػػف خصػػا ص
الكيانات االخرى ولو اف اعض الكيانات تتشااو فى اعض الخصا ص في نافذة الخصا ص يكوف
عمى اليسار اسػـ الخاصػي .وعمػى اليمػيف اعػداد تمػؾ الخاصػي .يػث إف جميػ الخصػا ص لجميػ
الكيانات يكوف اعدادىا تمقا يا وذلؾ اواسط .معالف المغ، .ويمكف تغييػر إعػداد أي خاصػي .سػب
رغا .المارمف و سب الخيارات المتا و لتمؾ الخاصي .ويكوف التغيير في مر مػ .تصػميـ المشػروع
ت تػػوى نافػػذة الخصػػا ص صػػندوؽ قا مػػ .ي ػػوى قا مػػ .ااسػػماء الكيانػػات الموجػػودة فػػي المشػػروع
بكػ ػػؿ أداة ت كػ ػػـ موجػ ػػودة عمػ ػػى النمػ ػػوذج تعتاػ ػػر كيػ ػػاف يمكػ ػػف اختيػ ػػار أي عنصػ ػػر السػ ػػتعراض
خصا صو مااشػرة إمػا فػي أسػتؿ النافػذة فيوجػد اطػار DESCRIPTIONأي الوصػؼ ،ي تػوي
عمػ ػ ػ ػ ػػى معمومػ ػ ػ ػ ػػات توضػ ػ ػ ػ ػػي ي .عػ ػ ػ ػ ػػف وظيتػ ػ ػ ػ ػػ .الخاصػ ػ ػ ػ ػػي .الم ػ ػ ػ ػ ػػددة يمكف اختػ ػ ػ ػ ػػاء او اظيػ ػ ػ ػ ػػار
DESCRIPTIONاػػالنقر الػػزر األيمػػف لمتػػارة عمػػى نافػػذة الخصػػا ص وت ديػػد او الغػػاء القا مػػ.
DESCRIPTION DESCRIPTIONيمكػ ػػف اسػ ػػتعراض الخصػ ػػا ص امػ ػػا وفػ ػػؽ الترتيػ ػػب
االاجػ ػػدي لمخصػ ػػا ص مػ ػػف قا مػ ػػ AIPHABETIC .او وف ػ ػؽ ف ػ ػػات الخصػ ػػا ص مػ ػػف القا م ػ ػػ.
، CATEGORIZEDيث تقسـ الخصا ص الى عدة ف ات ىي -:
APPEARANCE-1الظيور -:ت توى ىذه الت .مجموع.
الخصا ص المتعمق .اطرؼ االظيار والشكؿ العاـ
BEHAVIOR -2السموؾ -:تصنؼ قا م .الخصا ص
الموجوده ضمف ىذه الت .طريق .عمؿ الكياف االنسا .لااقي
العناصر في التطايؽ
DDE -3أوب -: DYNAMIC DATA EXCHANGE
ويقصد ايا التاادؿ الديناميكي وىو الوسيم .االتصاؿ ايف النماذج في
التطايؽ ،ىذه الت .خاص .االنماذج فقط ،إذ ال تمتمؾ ااقي كيانات
التطايؽ الخصا ص الموجودة في ىذه المغ.
FONTالخط -:ت توى ىذه الت .عمى الخصا ص المتعمق .انمط
الخط الذي سيظير في الكياف مثؿ النوع وال جـ والتأثيرات المتعمق.
االخط
شكل رقم ( )5يوضح نافذة اخلصائص
22
MISCمتترقات - :ويقصد ايا مواصتات مختمت ،.إذ ت توي ىذه الت .عمى مجموع .مف
الخصا ص ذات تأثيرات متنوع ،.اغمب الخصا ص الموجودة في ىذه الت .كثيرة االستخداـ أثناء
تطوير التطايقات
POSITIONالموضػ - :تقػػوـ الخصػػا ص الػواردة فػػي ىػػذه الت ػػ .ات ديػػد جػػـ الكػػا ف مػػف
ارتتاع وعرض إ داثيات عمى النموذج
SCALEالمقيػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػاس - :ت ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػدد ىػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػذه الخصػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػا ص مقيػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػاس اإل ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػداثيات
المستخدم .في النموذج
23
انفصم انثبنث/بنبء مششوع جذيذ
-1-3مراحل تصميم المشروع-:
أي مشروع في لغ VB .ال يكتمؿ اال اثيث م ار ؿ مترااط .م اعضيا الاعض وىي-:
أوال :مرحمة التصـميم -:فػى ىػذه المر مػ .يػتـ تصػميـ المشػروع اشػكؿ مظيػرى أي انػو فػى ىػذه
المر م ػػ .ي ػػتـ وضػ ػ االدوات المػ ػراد وض ػػعيا ف ػػى النم ػػوذج ،وذل ػػؾ ااالس ػػتعان .اص ػػندوؽ االدواتب
TOOL BOX
كيفية وضع األدوات عمى النموذج -:
نضغط عمى االدوات المراد وضعيا عمى النموذج امتتاح التارة االيسر مرة وا ده فقط ننقؿ مؤشر
التارة الى النموذج فتي ظ اف مؤشر التارة قد تغير شكمو ،عادة يتغير شكؿ مؤشر التارة الى +
نضػػغط عمػػى متتػػاح التػػارة االيسػػر وتس ػ ب التػػارة ااتجػػاه قطػػري ب عنػػد الس ػ ب ناقػػى ضػػاغطيف
عمى متتاح التارة االيسر
ا يث يكوف شكؿ االداة مرا او مستطيؿ
مالحظـــة -:اعػػد اضػػاف .أي عنصػػر الػػى النمػػوذج يمكػػف ت ريكػػو وتغييػػر موقعػػو و جمػػو وذلػػؾ
االضػػغط عميػػو امتتػػاح التػػارة االيسػػر يػػث يصػػا اػػداخؿ مقػػايض عنػػد وضػ
المؤشػػر عمػى ا ػػد
المقػػايض سػػوؼ يتغيػػر شػػكؿ مؤشػػر التػػارة الػػى سػػيـ ذو أرسػػيف فػػاذا اردنػػا تغييػػر جػػـ مراػ االداة
ااتجاه معيف نضغط عمى المقاض الذى اذلؾ االتجاه ثـ نس ب اذلؾ االتجاه ،وىو امااتجاه افقي
او عمودى او اتجاه قطرى
ثانيــا :مرحمــة إعــداد خصــائص كــل كيــان -:امػػا اف كػػؿ كيػاف لػػو مجموعػػ .خصػػا ص تػػـ
اعػػدادىا اشػػكؿ تمقػػا ي مػػف قاػػؿ مصػػممى المغػػ ،.اعػػض الخصػػا ص نرغػػب اشػػكؿ ضػػرورى جػػدا
تغييرىا الى ما يي ـ رغااتنا و سب الخيارات والمجاالت المتا و ،ني ظ اف جمي الخصػا ص
لجمي الكيانػات المتا ػو ىػى مرتاػو اشػكؿ ااجػدى ب سػب ااجديػ .ال ػروؼ االنكميزيػو ،عػدا
الخاصيو nameيث اف ىذه الخاصيو ت دد اسـ الكياف ولػيس عنوانػو والتػرؽ اػيف االثنػيف ىػو
اف اسـ الكياف ىو االسـ الذي يػتـ التعامػؿ معػو فػى الشػترات وىػذا االسػـ ال يظيػر عمػى الكيػاف
فى مر متى التصميـ والتنتيذ ،اما العنواف فانو مجرد نص ب او نص وصتى يظيػر فػوؽ االداة
في مر م .التصميـ ومر م .التنتيذ ويمكف تغييره الى أي نص اخر مف خيؿ الخاصيcaption .
24
لمكيانػات commandوlabel
ني ػظ اف ىنػاؾ ثػيث اشػكاؿ العػدادات الخصػا ص القسـم
االول منيػػا يمتػػد الضػػغط عميػػو ببعمػػى الخاصػػيو
فػػاف شػػكؿ مؤشػػر التػػارة يت ػػوؿ الػػى مؤشػػر
نصوص وىو خػط مسػتقيـ عمػودي عمػى سػايؿ المثػاؿ خاصػي caption .وخاصػي next .وغيرىػا
مف الخصا ص
القسم الثاني مف الخصا ص عند الضغط عميو فانو يظيرفى يمينػو راس سػيـ
متجػػو الػػى االسػػتؿ عنػػد الضػػغط عميػػو سػػوؼ تنسػػدؿ قا مػػ .فييػػا مجموعػػ .خيػػارات وىػػذا يعنػػى اف
اعداد ىذه الخاصي .ين صر فػى تمػؾ القا مػ .أي يجػب اف نختػار ا ػد خيػارات تمػؾ القا مػ ،.عمػى
سػايؿ المثػاؿ خاصػي .الرؤيػ visible .فػاف فييػا أعػداديف ىمػا false ، trueالقسػـ الثالػث مػف
الخصػػا ص عنػػد الضػػغط عمييػػا سػػوؼ يضػػير فػػى يمينيػػا مراػ صػػغير ي تػػوى عمػػى ثػػيث نقػػاط
ب
وى ػػذا يعن ػػى ان ػػو عن ػػد النق ػػر عم ػػى ب
س ػػوؼ تتػ ػت لن ػػا ناف ػػذة خاص ػػي font .ف ػػاف فيي ػػا
خصػػا ص أخػػرى يػػتـ ت ديػػدىا وىػػى نػػوع الخػػط وىي ػػ .الخػػط ،وك ػذلؾ خاصػػيpicture .فانػػو يػػتـ
ت ديدا امتداد الممػؼ الػذي ي ػوى عمػى صػوره ىػذا مػا يخػص إعػداد الخصػا ص فػي مر مػ .إعػداد
الخصػػا ص ،ىنالػػؾ إعػػداد لمخصػػا ص فػػي مر مػػ .الارمجػػ .ب مر مػػ .كتااػػ .الشػػترات ،ي ػث اف
ىنالؾ صيغ .عام .ألعداد الخصا ص-:
Object. Property=value
فيما يمي جداوؿ يايف اعض الخصا ص واعداداتيا المتا .ووصؼ لكؿ إعداد ىذه الخصا ص
ى ػػي الخص ػػا ص الت ػػي يك ػػوف إع ػػدادىا ي ػػوي عم ػػى قا م ػػ .م ػػف الخي ػػارات اغ ػػض النظ ػػر ع ػػف ن ػػوع
الكياف-:
الخاصي.
اإلعداد
الوصؼ
0-flat
يظي ػ ػ ػػر ى ػ ػ ػػذا اإلع ػ ػ ػػداد النم ػ ػ ػػوذج اش ػ ػ ػػكؿمسط
Appearance
-يظير النموذج ثيثي الاعد
1-3d
-اي دود تظير فييا النافػذة اػدوف شػريط
0-none
Border style
عنواف أو دود جاناي.
25
ػػد متػػرد ثااػػت تظيػػر فييػػا النافػػذة ا ػػدمترد وال يمكف لممستخدـ اف يغير مف إاعػاد
1-fixedsingle
الناف ػػذة اع ػػد التنتي ػػذ ويظيرف ػػي ى ػػذا اإلع ػػداد
شريط العنواف وزري التكاير والتصغير
قاا ػ ػػؿ لمتغيي ػ ػػر وى ػ ػػى ال ال ػ ػػ .االفت ارضػػ ػػي.الع ػ ػ ػػدادات النم ػ ػ ػػاذج يظي ػ ػ ػػر فيي ػ ػ ػػا شػ ػ ػ ػريط
2-sizeable
العنواف وأزرار الت كـ وصػندوؽ الػت كـ فػي
شػ ػريط العن ػ ػواف ويمك ػػف لممسػػػتخدـ اف يقػػػوـ
اتغيير ااعاد النافذه خيؿ مر م .التنتيذ
صندوؽ وارثاات اسمؾ النموذج فػي ىػذااالعداد سموؾ صناديؽ ال وار أي ال يمكف
تتغيي ػػر جـ النم ػػوذج وال ي ت ػػوي عمػ ػػى زري
3-ixeddialog
التكاير والتصػغير وال عمػى صػندوؽ الػت كـ
وىػ ػػذا الخيارمتي ػ ػػد الجػ ػػؿ تص ػ ػػميـ ص ػ ػػناديؽ
وار نموذجي.
االغػ ػ ػػيؽ فقػ ػ ػػط اواسػ ػ ػػط .ب× ويكػ ػ ػػوف ىػ ػ ػػذا
النم ػػوذج ثاا ػػت والتظيرايقون ػػ .النم ػػوذج ف ػػي
4-fixd tool
window
ش ػ ػريط الميػ ػػاـ وىػ ػػذا الخيػ ػػار متي ػػد لتصػ ػػميـ
نوافذ ادوات الت كـ
-نافػػذة ادوات متغي ػرة :يسػػمؾ النمػػوذج فػػي
5-sizedble
tool window
ىذا الخيار نتس سموؾ الخيار السػااؽ غيػر
انو متغير ال جـ
متعم ػ ػ ػ ػ ػػ -: .ي ػ ػ ػ ػ ػػتـ اظي ػ ػ ػ ػ ػػار ازرار ال ػ ػ ػ ػ ػػت كـ
True
وصندوؽ الت كـ فػي شػريط عنػواف النمػوذج
Controlbox
وىذا االعداد ىو ال ال .االفتراضي.
26
معطم ػ ػ ػػ: .اخت ػ ػ ػػاء ازرار ال ػ ػ ػػت كـ وص ػ ػ ػػندوؽ
الػػت كـ فػػي ش ػريط عن ػواف النمػػوذج واالتػػالي
False
عدـ قػدرة المسػتخدـ عمػى تصػغير او تكايػر
النموذج الى ال د االدنى او االقصى
متعم : .يتـ تتعيؿ زر التكاير وظيوره عمػى
True
شػ ػريط العنػ ػواف وى ػػذا االع ػػداد ى ػػو االع ػػداد
االفتراضي
Maxbutton
معطم ػ ػػ : .يا ػ ػػدو زر التكاي ػ ػػر عم ػ ػػى ش ػ ػ ػريط
العن ػواف ااىتػػا ويسػػتطي المسػػتخدـ تصػػغير
False
النموذج الى ده االدنى
متعم:.ال ال ػػ .االفت ارض ػػي .ي ػػث ي ػػتـ تتعي ػػؿ
True
زر التصغير في شريط العنواف
Minbutton
معطم ػ ػػ :.يظي ػ ػػر زر التصػ ػ ػػغير ااىتػ ػ ػاً فػ ػ ػػي
False
شػ ػ ػ ػ ػ ػريط العنػ ػ ػ ػ ػ ػواف ويس ػ ػ ػ ػ ػػتطي المس ػ ػ ػ ػ ػػتخدـ
تكايرالنموذج الى ده االدنى
متعم :.عند ىذا االعداد يكوف اسػـ النمػوذج
True
في الجيو اليمنى مف شػريط العنػواف وكػذلؾ
الق ػوا ـ المس ػػتدل .يك ػػوف اتجاىي ػػا م ػػف ال ػػيمف
RightToLeft
الػػى اليسػػار والطااعػػ .النموذجيػػ .تكػػوف مػػف
اليمف الى اليسار
معطم :.عكس العممي .السااق،.وىذا االعػداد
False
ىو االعداد االفتراضي
متعم :.يكوف الكا ف عنػد ىػذا االعػداد مر يػاً
True
Visible
وىذا ىو االعداد االفتراضي
27
معطم ػ ػػ :.يك ػ ػػوف الك ػ ػػا ف غي ػ ػػر مر ػ ػػي عن ػ ػػد
False
التنتيذ
يػػدوي يػػتـ فييػػا ت ديػػد كيتػػ .ظيػػور النمػػوذج
0-manual
فػػي نافػػذة توضػ النمػػاذج بيػػدوياً ب from
loyout windowاو مػػف الخاصػػتاف ب
topو left
مركز الارنامف الذي ينتمي النوذج اليػو عنػد
ىػػػذه القيم ػػ .يظيػ ػػر النم ػػوذج ف ػػي منتصػ ػػؼ
1-centrowner
المس ػ ػػا .الم ج ػ ػػوزة عم ػ ػػى الشاش ػ ػػ .الناف ػ ػػذة
Startuppostion
الر يس .لمارنامف
مركػ ػػز الشاشػ ػػ : .يػ ػػتـ وض ػ ػ النمػ ػػوذج فػ ػػى
2-centerscreen
منتصؼ الشاش .اغض النظر عف المسا .
الم جوزة لمارنامف
نافػ ػ ػػذة افت ارضػ ػ ػػي : .يظيػ ػ ػػر فييػ ػ ػػا النمػ ػ ػػوذج
3-windows
default
ااالعػ ػػدادات االفت ارضػ ػػي .مػ ػػف قاػ ػػؿ ارنػ ػػامف
VB6
الػػ ػ ػػ .النافػ ػ ػ ػػذة الطايعي ػ ػ ػػ : .وىػ ػ ػ ػػى ال الػ ػ ػ ػػ.
0 -Normal
االفت ارض ػ ػػي .تظي ػ ػػر فيي ػ ػػا ناف ػ ػػذة النم ػ ػػوذج
اشػ ػػكميا الطايعػ ػػي موضػ ػػوع .عمػ ػػى الشاشػ ػػ.
Windows
sates
سب االاعاد الم ددة لمنموذج
ال ػ ػػ .ال ػ ػػد األدن ػ ػػى :تظي ػ ػػر الناف ػ ػػذة اع ػ ػػد
1-Minimized
تشػ ػػغيؿ الارنػ ػػامف فػ ػػى الػ ػػ .ب التكايػ ػػر
لتمي كؿ الشاش.
م ػػاذاة الػػى اليسػػار يظيػػر الػػنص فػػي يسػػار
0-Left justify
Alignment
صندوؽ النصوص
28
توسيط:إلى اليميف ،يظير النص في يمػيف
1-Right justify
صندوؽ النصوص
توسػػيط :يظيػػر الػػنص فػػى وسػػط صػػندوؽ
2-Center
النصوص
متعم : .وىى قيم .افتراضي ، .يث تشارؾ
True
األداة في الارنامف اخصا صيا واالجراءت
معطم ػ ػ ػػ : .تك ػ ػ ػػوف األداة غي ػ ػ ػػر فعال ػ ػ ػػ .ف ػ ػ ػػي
Enabled
False
الارنامف ويتـ إيقاؼ تػأثير كافػ .خصا صػيا
األخرى في عممي .الارمج.
قياسي :ىذه القيم .ىي ال الي .االفت ارضػي.
0-standard
يػ ػػث تظيػ ػػر خانػ ػػ .االختيػ ػػار عمػ ػػى شػ ػػكؿ
Style check
ت قؽ
رسػػومي :تجعػػؿ ىػػذه القيمػػ .خانػػ .االختيػػار
1- graphical
عمى شكؿ زر امر
تظي ػ ػػر خان ػ ػػ .االختي ػ ػػار فارغ ػ ػػ .م ػ ػػف إش ػ ػػارة
0-unchecked
الت قؽ
Value
تكػ ػػوف خانػ ػػ .الخيػ ػػار م تويػ ػػ .عمػ ػػى إش ػ ػػارة
1- checked
الت قؽ اموف غامؽ
ت تػػوي خانػػ .االختيػػار عمػػى إشػػارة الت قػػؽ
2- grayed
اموف ااىت
ادوف ان ياز وىي ال ال .االفتراضي.
0-none
ان ياز لألعمى :يظير صندوؽ الصػور فػي
Align
أعمى النموذج وتسػتخدـ ىػذه القيمػ .عنػد
1-align top
ال اج ػ ػػ .إلنش ػ ػػاء شػ ػ ػريط أدوات ااالس ػ ػػتعان.
اأداة صندوؽ الصور
29
ان ياز لألستؿ :يظير صػندوؽ الصػور فػي
2-align bottom
أس ػػتؿ النم ػػوذج وتس ػػتخدـ ى ػػذه القيم ػػ .عن ػػد
ال اج .إلنشاء شريط ال.
ان ي ػػاز لميس ػػار :يظي ػػر ف ػػي أقص ػػى يس ػػار
3-align left
النموذج
ان يػ ػػاز لميمػ ػػيف :يظيػ ػػر فػ ػػي أقصػ ػػى يمػ ػػيف
4-align right
النموذج
خمتيػ ػػ .ش ػ ػتاف :.ا يػ ػػث ال يظي ػ ػر عنػ ػػد ىػ ػػذا
0-transparent
اإلعداد لوف الخمتي .ليذه األداة
Back style
خمتيػػ .كامػػده :يظيػػر عنػػد ىػػذه القيمػػ .لػػوف
1-opaque
الخمتي .أو األرضي .لألداة
شػػتاؼ :واالتػػالي تظيػػر األداة اشػػكؿ اػػدوف
0-transparent
إطار
Border style
خ ػػالص :يظي ػػر اإلط ػػار ف ػػي األداة متص ػػؿ
1-solid
ادوف انقطاع
2-dash
شرطات
3-dot
نقاط
شرط .ونقط.
4-dash-dot
شرط .ونقطتيف
5-dash-dot-dot
خالص داخمي :تكوف عند ىذه القيم .ثخان.
6-inside solid
اإلطار مف الداخمو
تعا .خالص :.عند ىذه القيمػ .تمتمػئ األداة
0-solid
Fill style
اموف التعا fill color .
31
تعا ػػ .شػػتاف :.عنػػد ىػػذه القيمػػ .يظيػػر فقػػط
1-transparent
لوف اإلطار لألداة
2-horizontal line
تعا ػػ .اخط ػػوط أفقي ػػ :.تك ػػوف التعا ػػ .عا ػػارة
عف خطوط أفقي .ي دد لونيا اموف التعا .
تعا .اخطوط عمودي.
3-verticalline
4upwarddiogonal
تعا .اخطوط ما م .صاعدة
5-downward
diagonal
تعا .اخطوط ما م .صاعدة
تعا .اخطوط متقطع.
6-cross
تعا .اخطوط متقاطع .ما م.
7-diagonalcross
مستطيؿ
0-rectangle
مرا
1-square
ايضوي
2-oval
Shape
دا ري
3-circle
مستطيؿ مدور ال واؼ
4-rounded
rectangle
5-rounded squareمرا مدور ال واؼ
ع ػػدـ السػ ػ ب :أي اف ى ػػذا الكي ػػاف اليمك ػػف
0- Manual
س او امؤشر التارة
Drag mode
ممكف الس ب :أي انو يمكف س او
1- Automatic
30
ثالثا //مرحمة البرمجة -:
تشكؿ ىذه المر م .اىـ مر م .في م ار ؿ اناء المشروع يػث اػدوف ىػذه المر مػ .فػاف المشػروع ال
يمكف اف ينتذ ،في ىذه المر م.يتـ انػاء وكتااػ .شػترات المشػروع والتػي عمػى اساسػيا يػتـ تنتيػذ او
توجيو معالف المغ .اكيتي .التنتيذ المشروع
ىذه المر م .يتـ فييا كتاا .شترات المشروع مف خػيؿ نافػذة CODE WINDOWوالتػي يمكػف
الوصوؿ الييا اعػدة طػرؽ ىػي امػا االضػغط مػرتيف امتتػاح التػارة االيسػر عمػى الكيػاف المػراد كتااػ.
شترتو و مف خيؿ قا م.
Code Window
View
كما موض االشكؿ رقـب6
قائمة الكيانات الموجوده على
النموذج
قائمة االحداث المتاحة الي كيان
شكل رقم( )6يوضح نافذة الشفرات(نافذة الربنامج)
32
ت تػػوي نافػػذة الشػػترات فػػى اعيىػػا عمػػى صػػندوقي قا مػػ .الػػذي عمػػى اليسػػار ي تػػوى عمػػى قا مػػ.
ااسماء الكيانات التى تـ وضعيا فى المشروع اضمنيا الكياف formوكذلؾ generalأي الجزء
الخاص االشترات العام،.
يػػث يػػتـ اختاػػار اسػػـ الكيػػاف وكتاا ػ .شػػترتو ،امػػا صػػندوؽ القا مػػ .الػػذى فػػى يمػػيف النافػػذة فانػػو
ي تػػوي عمػػى مجموعػػ .ا ػػداث ،والمقصػػود اال ػػدث Eventىػػو االج ػراء الػػذي يػػتـ اتخػػاذه لتنتيػػذ
شترة الكياف الم دد وعمى االكثر يكوف ال دث ىو clickأي يتـ تنتيذ ىذا االجراءب او شترة ىػذا
الكيػاف وذلػػؾ االضػػغط عمػػى متتػػاح التػػارة االيسػػر اشػػكؿ عػػاـ فػػاف الجميػ مػػا سػػوؼ نػػاتى عمػػى
شر و ىو ضمف ىذه المر م .وىى مر م .الاناء الارمجى لممشروع
عندما نختار أي كياف لكتاا .شترتو فاف نافذة الارمجو تظير االشكؿ التالي -:
) ( _clickاسـ الكياف
Private sub
مؤشر ألكتااو
|
END SUB
ىذا التصري يظير اشكؿ تمقا ي م أي كياف
-2-3مثال توضيحي-:
المثػػاؿ التػػالي نوض ػ فيػػو م ار ػػؿ تصػػميـ المشػػروع،في ىػػذا المثػػاؿ سػػنقوـ اتصػػميـ مشػػروع فيػػو
متتػػا ي امػػر االوؿ لعػػرض جممػػ .التر يػػب والثػػاني لمخػػروج ورسػػال .التر يػػب سػػتعرض ااسػػتخداـ
كياف تسميو بLabel
اوال:مر م .التصميـ:
33
ثانيا:مر م .اعداد الخصا ص
الخاصيو
االعداد
الكياف
Caption
الارنامف االوؿ
RightToLeft
True
Command1
Caption
تر يب
Command2
Caption
خروج
Form1
Caption
Label1
1-fixd single
BorderStyle
ثالثا:مرحمة البرمجة
تعػػد ىػػذه المر مػػ .مػػف اىػػـ م ار ػػؿ تصػػميـ المشػػروع يػػث مػػف خيليػػا يػػتـ كيتيػػ .توجيػػو عمػػؿ
معالف المغو عند التنتيذ-سياتي شرح ىذه المر مو االتتصيؿ -فػي ىػذا المشػروع ن تػاج فقػط كتااػ.
شػػترات لمكيػػانييفب command1و ، command2عنػػدما نريػػد كتااػػ .شػػترات كيػػاف معػػيف ننقػػر
عمى ذلؾ الكياف االنقر المزدوج فتظير لنا نافذة كتاا .الشترات والتي تـ مناقشتيا سمتا ،في االمػر
الذي اسمو كخروجك سنكتب
End
وىذا يعني اننا عند التنتيذ عنػدما ننقػر عمػى ىػذا المتتػاح سػوؼ يػتـ انيػاء التنتيػذ ،امػا فػي االمػر
الذي اسمو كتر يبك سنكتب العااره التاليو
كمر اا اكـ في لغ Visual Basic .ك=Label1.caption
عند التنتيذ ستظير ىذه العاارة في مرا التسميLabel1 .
-3-3تسمية الكيانات-:
كمػػا تعمػػـ ويجػػب اف نعمػػـ اف جمي ػ الكيانػػات فػػي Visual Basicتمتمػػؾ خاصػػيو فريػػده ىػػى
خاصػ ػػي .االس ػ ػػـ NAMEوى ػ ػػى اوؿ خاص ػ ػػي .ف ػ ػػي مراػ ػ ػ الخص ػ ػػا ص
PROPERTIES
، WINDIOWىػػذه الخاصػػيو بخاصػػي .االسػػـ ال تظيػػر فػػى واجيػػ .النمػػوذج ولكنيػػا تظيػػر فػػى
الشترات ويمكف التعامؿ م الكياف ادالل .ىذه الخاصي .اغمب اذ لـ يكف جميػ مارمجػوا Visual
Basicمتتقػػوف عمػػى اسػػتعماؿ ثيثػػ .ا ػػرؼ ااد ػػو فػػى اسػػماء الكيانػػات ،الف ذلػػؾ يسػػاعد عمػػى
34
معرف .اي .اداة ت كـ انشاءت الكياف يمكف استعماؿ اسموب التسػميو ىػذا لمكيانػات التػى تنشػ يا
لتجعؿ شترة الارنامف اكثر وضو ا ولتسيؿ فيميا عمى اآلخريف مف مطوري VB
ااالض ػػاف .لػ ػذلؾ ت ػػؤدى مص ػػطم ات التس ػػمي .ال ػػى س ػػرد الكيان ػػات اترتي ػػب ااج ػػدى ف ػػى مراػ ػ س ػػرد
الكيانات فى نافذة الشترات
ياػػػيف الجػ ػػدوؿ التػ ػػالى مصػ ػػطم ات تسػ ػػمي .الكيانػ ػػات ويتضػ ػػمف اسػ ػػـ الكيػ ػػاف االعرايػ ػػ .واالنكميزيػ ػػ.
ومصطم التسمي .باال رؼ الااد .ومثاؿ عف كيتي .استعماؿ كؿ كياف -:
اسم الكيان بالعربية
اسم الكيان باإلنكميزية
األحرف
البادئة
مثال
مرا كتاا .وسرد
ComboBox
cbo
CboEnglish
مرا قا م .تدقيؽ
CheckListBox
chk
ChkReadOnly
متتاح ب زر امر
CommandButton
cmd
CmdCancel
ايانات
Data
dat
DatBiblio
مرا سرد الدال ؿ
DirectoryBox
dir
DirSource
مرا سرد م ركات
DriveHistBox
drv
DrvTargst
مرا سرد الممتات
FileListBox
fil
FilSource
إطار
Frame
fra
FraLanguage
نموذج
Form
frm
FrmPrintForm
شريط انزالؽ افقي
HorizontalScrollBar
hsb
HsbVolume
صوره
Image
img
ImgEmptyBarrel
Label
lbl
LblInstructions
خط
Line
lin
LinUnderLine
مرا سرد قوا ـ
ListBox
lst
LstPeripherals
االقراص
تسمي .ب عنواف
35
.قا م
MnuFileOpen
mnv
Menu
OleObject
ole
OLE
OptFrench
opt
OptionButton
زر خيار
PicSmokeCloud
pic
PictureBox
مرا رسـ
ShpWireScreen
shp
Shape
شكؿ
TxtGetName
txt
TextBox
مرا نص
TmrAlarm
tmr
Timer
عدادبموقت
VsbTemperature
vsb
VerticalScrollbar
شريط انزالؽ عمودى
36
كياف ارتااط اتطايقات
أخرى
انفصم انشابغ/انمتغيشات وانبيبنبت
-1-4الثوابت والمتغيرات -:
اف اوؿ شػػي يجػػب الخػػوض فيػػو-ضػػمف المجػػاؿ الارمجػػي-ىػػو مايسػػمى اػػالمتغيرات ،يػػث اف
اغمب لغات الارمج -.اذا لـ يكف جميعيا-تمتمؾ القاامي .عمى خزف المعمومات اشكؿ وقتى ،ىذه
المعمومات ىى الايانات التى ن تاجيا عند تنتيذ ارامجنا فى أي تطايؽ لغ VB .تظير متغيػرات
او ثواات كتقني .لخزف تمؾ المعمومات
إف المتغيػػر ىػػو ااسػػاط .خ ػزيف ،او موق ػ م ػػدد فػػى الػػذاكرة يػػث نسػػتطي الوصػػوؿ الػػى ذلػػؾ
الموق التخزيني وتخزف او تسترج المعمومات فى أي وقت و كيتما نريد
-2-4تعريف الثوابت والمتغيرات -:
اشكؿ عاـ ىنالؾ نوعيف مف تصري الثواات والمتغيػرات االوؿ يكػوف عػاـ أي اننػا نقػوـ اتصػري
الثوااػػت والمتغي ػرات اشػػكؿ عػاـ أي فػػي الجػػزء GENERALبقسػػـ التص ػري ات العػػاـ وخػػارج
شػترة أي كيػاف ،وتكػوف صػيغ .ىػذا التصػري ىػى ااسػتخداـ العاػارة OPTION EXPLICIT
ثـ فى السطر التالى او االسػطر التاليػ .نصػرح االثوااػت والمتغيرات،ىػذا النػوع يتيػدنا عنػدما يكػوف
لػػدينا ثوااػػت ومتغي ػرات ن تاجيػػا فػػي عػػدد كايػػر مػػف الكيانات امػػا النػػوع الثػػانى فيػػدعى االتص ػري
الضمنى أي نقوـ اتصري متغيرات كؿ كياف اداخؿ شترتو بارنامجو فقط
-3-4أشكال تصريح البيانات:
-1الشكؿ االوؿ يكوف ااستخداـ العاارة DIMوىى اختصار ؿ DEMENSIONوتعنى اعد
فى الذاكرة ب جـ ويستخدـ ىذا الشكؿ فى التصري العاـ والتصري الضمنى وىذا الشكؿ ىو
ا دى ال التيف -:
اسـ المتغير
DIM
النوع الاياني ASاسـ المتغيير DIM
-2الش ػػكؿ الث ػػاني ى ػػو ااس ػػتخداـ العا ػػارة BUPLIC
تستخدماف فى
التصري العاـ لمايانات :
37
او GLOBALوى ػػاتيف العا ػػارتيف
اسـ المتغير
BUPLIC
النوع الاياني ASاسـ المتغير
BUPLIC
النوع الاياني ASاسـ المتغير
GLOBAL
اسـ المتغير
GLOBAL
-3الشكؿ الثالث ىو اااستخداـ العاارات PRIVATE
او LOCALوىاتيف العاارتيف
تستخدماف
في التصري الضمنى لمايانات وشكميما ىو -:
اسـ المتغير
PRIVATE
النوع الاياني AS
اسـ المتغير
PRIVATE
اسـ المتغير
LOCAl
النوع الاياني ASاسـ المتغير
LOCAL
ىذه إشكاؿ التصري ات أعيه ىي ألنػواع الايانػات القاامػ .لمت ػوؿ ونعنػى ايػا إف المتغيػر يكػوف
ذات قيم .ادا ي.ب ااتدا ي/.أولي .غير ثااتػ .أي انػو عنػد تنتيػذ الارنػامف يأخػذ المتغيػر قيمػ .معينػ.
ويػػتـ عمييػػا األجػراء المي ػػـ وعنػػد االنتيػػاء مػػف الارنػػامف وتنتيػػذه مػرة أخػػرى فانػػو سػػوؼ يأخػػذ قيمػػ.
ااتدا ي .جديدة كأف تكوف 0أو 1أو أي قيم .أخرى يتـ إعطا يا لو في الارنامف
في يف إف ىنالؾ صيغ .أخرى مف التصػري ات وىػى صػيغ .التصػري ات المسػتقرة STATIC
وىى يمكف اف تستخدـ في كي نوعي التصري ات ب العاـ والضمني ،وىذه الصيغ .ىي-:
38
اسـ المتغير
النوع الاياني AS
اسـ المتغير
STATIC
STATIC
في ىذه الصيغ .مف التصري ات ب أي STATICيكػوف المتغيػر ثااػت أي انػو ي ػتتظ اقيمػ.
أخر تنتيذ سااؽ لو كقيم .أولي .إذا أصا ت قيمتػو مػثي ىػي ب 1وتػـ تنتيػذ الارنػامف مػرة اخػرئ
فاف قيم .المت غير االاتدا ي في ىذا التنتيذ سوؼ تكوف ب( 1عممػا اف قيمتػو االاتدا يػ .فػي التنتيػذ
األوؿ لمارنامف ىي ليست ىذه القيم ، .قد تكوف مثي ب 0اوب 2او أي قيم .اخرى غيرب1
التصريح بالثوابت-:
الثوااػػت -:ىػػي المتغيػرات التػػي ليػػا قيمػػ .ثااتػػ .قاػػؿ دخوليػػا لمارنػػامف واسػػتقداميا فػػي عاا ارتػػو وىػػذه
القيم .تعطى لممتغير عند التصري او ،أما عف شكؿ التصري او ىو
قيم = .النوع الاياني ASاسـ الثاات DIM CONST
) القيم .ىنا ىي سب النوع الاياني (
-4-4انواع البيانات-:
فيما يمػي جػدوؿ ياػيف أنػواع الايانػات المعرفػ .فػي لغػ Visual Basic .و جػـ الػذاكرة المتػاح لكػؿ
متغيػر يأخػذ ذلػؾ النػوع وياػػيف الجػدوؿ كػذلؾ مػدى العناصػر التػي يمكػف التعامػؿ معيػا ضػمف ىػػذا
النوع -:
نوع الايانات
ال جـ
المدى
INTEGER
2BYTE
مف – 32768
بعدد ص ي
مثاؿ عف االستعماؿ
إلى 32767
DIM BIRD %
BIRD %= 37
او
Dim bird as
integer
BIRD = 37
39
LONGب عػ ػ ػ ػػدد
4 BYTEمف
– 2147483648
إل ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػى
ص ي طويؿ
7
او
214748364
SINGLE
8 BYTE
بنقط ػ ػ ػ ػ ػػ .عا م ػ ػ ػ ػ ػػ.
مػ ػػف
3.402823e38
ب 8 BYTEم ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػف
نقطػ ػ ػ ػ ػ ػ ػػ .عا مػ ػ ػ ػ ػ ػ ػػ.
1.797693134862D308
او
DIM PRICE AS
SINGLE PRICE
= 899.9
DIM PI#
PI# = 3-141592
او
DIM PI AS
DOUBLE
DIM PI
=3.141592
@ DIM DINAR
DINAR @ =15
1.797693134862D308
8BYTE
بعممو
م ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػف -
922337203685477.5808
او
الػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػى
DIM DINAR AS
922337203685477.5808
CURRENCY
DINAR =15
STRINGاايػ ػ ػػت لكػ ػ ػػؿ مف 0الى 65535رفا
بسسم .رمزيو
رؼ
BOOLEAN
DIM PRICE
PRICE ! = 899. 9
الػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػ ػػى
مزدوج .الدق.
CURRENCY
DIM LON AS
LONG LON
=30000
-3.402823e38الػ ػػى
فردي .الدق.
DOUBLE
&DIM LON
LON & = 30000
DIM ST $
"ST$ =”DOLAR
او
DIM ST AS
STRING
”ST = “ DOLAR
DIM FLAG AS
2BYTE
41
بمنطقي
DATEتاريخ
8BYTE
variantمتنوع
16BYTEكؿ مجاالت انواع الايانات
ليرقاـ ،
BOOLEAN
FLAG = TRUE
DIM D AS
DATE
D = # 3-1-63 #
DIM TOTAL
TOTAL = 29.31
22BYTE
1BYTE+
لكؿ رؼ
ب لمسيسؿ
-5-4ادخــال واخ ـراج البيانــات -:مػػف الضػػروري جػػدا فيػػـ عمميػػات ادخػػاؿ واخ ػراج الايانػػات مػػف
والى معالف المغ، .فتى جمي لغات الارمج .يوجد جمػؿ ادخػاؿ الايانػات واخػراج النتػا ف ىنػا فػي
لغ Visual Basic .ىنالؾ عدة طرؽ الدخاؿ واخراج الايانات وكما يمي -:
يمكف ادخاؿ الايانات الى معالف المغ .اما عند تنتيذ المشروع او عند كتاا .شترة الارنامف ،فعنػد
كتااػػ .يػػتـ ااعطػػاء المتغي ػرات المسػػتخدم .فػػى الشػػترة قػػيـ ثااتػػو وىػػذه القػػيـ ال تتغيػػر اال اذا قمنػػا
اتغييرىا في الشترة ،
إمػ ػػا عػػػف إخ ػ ػراج ىػ ػػذه القػػػيـ فيػػػتـ ااسػ ػػتخداـ الخاصػػػي CAPTION .او TEXTالتااعػ ػػ .لكيػ ػػاف
االخراج،
-6-4مثال توصيحي-:1
فػػي المثػػاؿ التػػالي يوضػ كيتيػػ .التعامػػؿ مػ ايانػػات تػػـ ادخاليػػا فػػى شػػترة الارنػػامف وكيتيػػ .إظيػػار
النتا ف
40
-:مرحمة إعداد واجهة النموذج
-:مرحمة اعداد الخصائص
-: إعداد خصا ص الكيانات الموجودة عمى النموذج.مر م
SHOW
CAPTION
16 وا جـBOLD , ARIAL
FONT
QUIT
CAPTION
16 وا جـBOLD , ARIAL
FONT
1 FIXED SINGLE
CAPTION
BORDER
STYLE
2 -CENTER
ALIGNMENT
42
COMMAND 1
COMMAND 2
LABEL1
LABEL2
LABEL3
FONT
BOLD , TIMES NEW
\ROMANا جـ14
IMAGE1
"C:\program files\microsoft
PICTRURE
visual
studio\common\graphics\metafil
"e\ business\coins.wmf
TRUE
STRETCH
VISIBLE
FALSE
مرحمة كتابة شفرة البرنامج -:إف المشروع ال يمكف تنتيذه ما لـ نكتب لو شترة معينو مف خيليػا
يسػػتطي معػػالف المغػػ .معاممػػ .كيانػػات المشػػروع لكتاا .شػػترة أي كيػػاف نضػػغط عميػػو امتتػػاح التػػارة
األيس ػ ػ ػ ػ ػ ػػر مػػ ػ ػ ػ ػ ػرتيف اش ػ ػ ػ ػ ػ ػػكؿ متت ػ ػ ػ ػ ػ ػػالي نض ػ ػ ػ ػ ػ ػػغط عم ػ ػ ػ ػ ػ ػػى متت ػ ػ ػ ػ ػ ػػاح األم ػ ػ ػ ػ ػ ػػرCOMMAND2
والػذي أسػميناه ا ػ :QUITونكتػب فػػي شػترتو الجممػ END .وىػػذه تعنػى االنسػػا .لمعػالف المغػػ.
افنياء التنتيذ ثـ نضغط عمى متتاح األمر COMMAND1والذي أسميناه اػ SHOW
ونكتب فيو الشترة التالي-:.
)Label1.caption=int(rnd*10
)Label2.caption=int(rnd*10
)Label3.caption=int(rnd*10
If (label1.cption=5) or (label2.caption=5) or (label3.caption=5) then
Image1.visible=true
Endif
ني ظ اف في ىذه الشترة تـ ادخاؿ ايانات إلى الارنامف مف خيؿ خاصػيCAPTION .التااعػ.
لمكيػ ػػاف نسػ ػػميو LABEL1وفػ ػػى شػ ػػترة الارنػ ػػامف ،يػ ػػث اف ىػ ػػذه األرقػ ػػاـ ىػ ػػي إعػ ػػداد ص ػ ػ ي .
وعشوا ي .االنسا .لمشترة اعيه،
ف ػػي الس ػػطر األوؿ نق ػػوـ افع ػػداد الخاص ػػي.
FALSEأي
VISIBLEب خاص ػػي .االظيارواالخت ػػاء ااألع ػػداد
اخت ػػاء الص ػػورة الموج ػػودة ف ػػي الكي ػػاف ، IMAGE1ف ػػي األس ػػطر الث ػػاني
والثال ػػث وال اراػ ػ نق ػػوـ افس ػػناد قيم ػػ .عشػ ػوا ي .نس ػػتنتجيا م ػػف الدال ػػ.
43
RNDوى ػػى اختص ػػار ل ػ ػ ب
RANDOMIZEأي عش ػ ػ ػ ػوا ي ، .ىػػ ػ ػػذه القيمػػ ػ ػػ .العش ػ ػ ػ ػوا ي .نأخ ػ ػ ػػذ فقػ ػ ػ ػػط الق ػ ػ ػػيـ الص ػ ػ ػ ػ ي .
INTEGERاواسط .الدال INT .التي تسػتخمص القػيـ الصػ ي .فقػط ىػذه القيمػ .الصػ ي .
العشوا ي .نقوـ افسنادىا بب اواسط .عامؿ اإلسناد =
الكيانػات
Label3 , Label2 , Label1
إلى الخاصي CAPTION .التااع .إلػى
يػث انػو فػي كػؿ مػرة نضػغط عمػى امػر الكيػاف
SHOWب في التنتيذ فانو يتـ وضػ ثػيث قػيـ صػ ي .عشػوا ي .جديػدة إلػى الكيانػات أعػيه
فػي السػطر ال اراػ مػف الشػترة السػااقو تػأتي عاػارة
خاصػي.
IF
ىنػا قمنػا امقارنػ .مػا موجػود فػي
CAPTIONلمكيانػات Label1مػ الػرقـ ب 5ااسػتخداـ المعامػؿ المنطقػي OR
يث انو ااستخداـ ىذا العامؿ فانو يكتي عمى األقؿ قيم .وا دة مساوي .لػ ب 5فانو سوؼ يقوـ
اتنتيػذ العاػارة التػي تمػي كممػ THEN .وىػى عمميػ .جعػؿ قااميػ .رؤيػ .الصػورة فػي كيػاف الصػور
IMAGE1ىو ممكف رؤيتيا
-7-4مثال توضيحي -:2
المثال اعيه وض لنا كيتي .اف قيـ الايانات تػـ ادخاليػا خػيؿ شػترة الارنػامف كػذلؾ يمكػف ادخػاؿ
الايانات في تنتيذ الارامف اواسط .مرا النص ) ( Textbox.او دال .االدخػاؿ ) inputbox
،
المثاؿ التالى يوض كيتي .ادخاؿ الايانات واخراج النتا ف مف خيؿ مرا نص
المثاؿ يوض كيتي .اجراء عممي .سااي .معينػ .اػيف عػدديف ووضػ النتيجػ .فػي مراػ نػص ثالػث
-:
44
إعداد خصائص الكيانات- :
الكياف
الخاصي.
COMAND1
COMAND2
االعداد
CAPTION
CAPTION
TEXT
TEXT1و TEXT2
ADD
EXIT
و TEXT 3
كتابة شفرة الكيانات-:
نكتػب شػترة األمػر COMAND2والػذي اسػمو : EXITنكتػب فػي شػترتو الجممػ END .ثػـ
نكتب شترة األمر COMAND1والذي اسمو ADDوالشترة ىي -:
Dim a as integer ,b as integer
)A=val(text1.text
)B=val(text2.text
Text3.text=a+b
في السطر االوؿ تـ تعريؼ ب تصري
متغيريف ىمػا A , Bعمػى انيمػا عػدديف صػ ي يف
INTEGERذات النقط .الثاات .ويمكف تعريتاىما عمى انيمػا عػدديف قيقػيف ذات نقطػ .عا مػ.
االتصري
SINGLE
فػي السػطريف الثػاني والثالػث فػي الشػترة تػـ اسػتخداـ الدالػval .وىػى valueيػث اف ىػذه الدالػ.
تقػػوـ امعاممػػ .مػػا موجػػود فػػي مراػ الػػنص عمػػى انػػو قيمػػ .عػػدد ، numerical valueأي يػػتـ
ت ويػػؿ مػػا موجػػود فػػي مرا ػ نػػص مػػف قيمػػ .النصػػي.
VALAU
textual valueالػػى قيمتػػو العدديػػ.
NUMERICALويػػتـ إسػػناد ىػػذه القػػيـ الػػى متغيػريف Aو Bفػػي السػػطر
األخير تتـ عممي .الجم ايف العدديف Aو Bنض النتا ف في مرا النص ، TEXT 3وىذه
أيضا تعتار طريق .إخراج الايانات
45
تنفيذ المشروع -:عند تنتيذ المشروع نض مؤشر التارة في مرا النص االوؿ وندخؿ رقـ معيف
ثػػـ نضػ مؤشػػر التػػارة فػػي مراػ الػػنص الثػػاني ونػػدخؿ رقػػـ معػػيف ثػػـ نضػػغط متتػػاح األمػػر ADD
فيتـ إخراج الناتف في مرا النص الثالث
كػػذلؾ يمكػػف اسػػتخداـ دالػػ .االدخػػاؿ INPUT BOXإلدخػػاؿ الايانػػات يػػث إنيػػا تسػػيؿ العمػػؿ
االنسا .لواجي .المشروع أيضا وذلؾ ا ذؼ مرا النص TEXT3ومرا الػنص TEXT2إمػا
االنسػػا .لشػػترة الكيػػاف متتػػاح األمػػر COMMAND1والػػذي اسػػمو addنقػػوـ اتغيػػر السػػطريف
الثاني والثالث الى الشترة التالي-:.
) " A=INPUTBOX ( " INTER FIRST NUNBER
)" B = IN PUT BOX ( " INTER SECOND NUMBER
-8-4دالة االدخال - : INPUT BOXوىى عاارة عف مرا
وار يتـ مف خيلو الت اور
م المستخدـ userالدخاؿ اياناتو إما صيغ .ىذه التالي .ىي -:
)]InputBox(Prompt,[Title],[Defualt],[Xpos],[Ypos],[HelpFile],[context
as string
يث اف -:
PROMPT -1ب إجاػاري
-:ب معنػاه توجيػو وىػى الرسػال .المطمػوب عرضػيا ويجػب اف
ال تزيػد عمػى ب 124رمػز وتوضػ اػيف عيمتػػي اقتاػاس ك ك ويمكػف وضػعيا ضػمف متغير رفػػي
وتعويض ىذا المتغير مكأف الجزء PROMPTفى الدال .اعيه
-2ب TITLEب اختياري
-:عنواف صندوؽ ال وار ويجب وضعو ايف عيمتي اقتااس
ك ك
-3ب DEFUALTب اختي ػػاري - :القيمػ ػػ .التػ ػػى ت ت ػػؿ المتتػ ػػاح الم ػ ػراد ظي ػػوره وىػػػى عمػػػى
االكثر متتا ي
CANCELاو OKتظير اشكؿ تمقا ى
-4ب XPOSباختيػػاري -:وىػػو عاػػارة عػػف رقػػـ يمثػؿ اال ػػداثي السػػيني لموقػ مراػ ال ػوار
ليذه الدال .عمى الشاش .بويمثؿ ا داثي النقط .االولى مف اعمى اليسارمف مرا ال وار
46
-5ب YPOSباختياري -:يمثؿ ا داثي الصادى لموق مرا ال وار
-6بHELP FILE
باختياري -:اسػـ الممػؼ المسػاعدة لمارنػامف ويوضػ فػى نتػس مجمػد
الارنامف
-7ب CONTEXTب اختيػػاري -:ومعنػػاه سػػياؽ ،ويمثػػؿ سػػياؽ رقػػـ الصػػت .التػػى ت تػػوي
عمى معمومات عف صندوؽ ال وار ال الى فى ممؼ المساعدة
فػي مراػ ال ػوار الخػاص ايػذه الدالػ .يظيػر مراػ ب او مسػتطيؿ يشػاو مراػ الػنص textbox
موجػػود فػػي ىػػذا المراػ مؤشػػر ويشػػاو مؤشػػر الكتااػػ .فػػي نظػػاـ wordفنقػػوـ افدخػػاؿ الايانػػات ثػػـ
نضػػغط المتتػػاح enterفػػي لو ػػ .المتػػاتي ،اف الايانػػات التػػي نقػػوـ افدخاليػػا ىػػي سػػب النػػوع
الاياني لممتغير الذي تسند إليو ىذه الدال.
إما شكل الدالة هو :
العنوان TITLE
cancel
التوجيو Prompt
ok
مربع ادخال البيانات
-9-4إخراج البيانات :
ىنالؾ عدة طرؽ إلخػراج الايانػات منيػا ااسػتخداـ مراػ تسػمي label .او ااسػتخداـ مراػ نػص
textboxاو ااستخداـ الدال msgbox .وىي ااختصار ل ػ massage boxأي مراػ الرسػا ؿ
ومف خيلو يتـ عرض رسا ؿ خطأ او عرض رسا ؿ توجيو وارشاد
مالحظة :
نقصد ىنا افخراج الايانات ب المعمومات وىي تمؾ المعمومات والنتا ف التي تكوف نوعيا الاياني
ىو عددي او رمزي والتي تعرؼ امتغيرات إما االنسا .لعرض الكيانات او إختا يػا ب يػث إنيػا
47
تعتاػػر مخرجػػات اػرامف معينػػ .فػذلؾ يػػتـ مػػف خػػيؿ الػػت كـ اتنصػػيب خاصػػي .الرؤيػػvisible .
لذلؾ الكياف الذي نريد رؤيتو او عدـ رؤيتو -:
Visible =true
اسـ الكياف
ب إلظيار الكياف
Visible =false
اسـ الكياف
ب إلختاء الكياف
-10-4دالة االخراج : MsgBox
وىي مختصر بمرا الرسا ؿ Message Box
تعرض الدالو MsgBoxالرسا ؿ في صناديؽ وار ،وصيغ .ىذه الدال-: .
)]Msgbox(Prompt,[Buttons],[Title],[helpfile],[context
يث اف-:
Prompt -1باجاػػاري :الرسػػال .المطمػػوب عرضػػيا ،ويجػػب االيزيػػد عػػدد ا ػػرؼ ىػػذه الرسػػالو
عمى 256رمز ،وتوض ايف عيمتي اقتاػاس ك ك ويمكػف وضػعيا ضػمف متغيػر رفػي وتعػويض
ىذا المتغير مكأف الجزء prompt
: [Buttons] -2ىذا الجزء مسؤوؿ عف االزرار التي ستعرض في صندوؽ ال وار ،كذلؾ ت ديد
االيقونػػات المػراد عرضػػيا فػػي مراػ ال ػوار ،ايضػػا ممكػػف اختيػػار شػػكؿ ونمػػط مراػ ال وار ،يػػث
الختيار نوع االزرار المراد عرضيا وااليقونات وشكؿ الصندوؽ معػا نضػ عيمػ .الجمػ +اينيػا
،وممكف استخداـ قيـ او ثواات رفي .مكاف .اوكيىما ،كما سياتي في الجدوؿ التالي
: [Title] -3عنواف صندوؽ ال وارويجب وضعو ايف عيمتي اقتااس ك ك
: [HelpFile]-4اسـ ممؼ المساعده-اف وجد-لمارنامف ويوض في نتس مجمد الارنامف
: [Context]-5امتػػداد الصػػت و التػػي ت تػػوي عمػػى معمومػػات عػػف صػػندوؽ ال ػوار ال ػػالي فػػي
ممؼ المساعده
الجػػدوؿ التػػالي ياػػيف قػػيـ االزرار ب Buttonsوااليقونػػات واالنمػػاط والثوااػػت ال رفيػػو المكاف ػػو ليػػا
وىي نتسيايمكف استخداميا في الجزء Buttonsفي الدالMsgBox .
القيم.
الثواات ال رفيو المكاف .
0
Vbokonly
1
Vbokcancel
الوصؼ
يعرض زر Ok
يعرض زري Okو Cancel
48
يعرض االزراربإجياض،اعادة
2
Vbabortretryignore
3
Vbyesnocnacel
4
Vbyesno
5
Vbretrycancel
16
Vbcritical
يعرض ايقون .الرسال .ال رج.
32
Vbquestion
يعرض ايقون .عيم .السؤاؿ
48
Vbexclamation
يعرض ايقون .عيم .التعجب
64
Vbinformation
يعرض ايقون .عيم .المعمومات
0
Vbdefaultbutton1
256
Vbdefaultbutton2
يجعؿ الزر الثاني في الصندوؽ افتراضيا
512
vbdefaultbutton3
يجعؿ الزر الثالث في الصندوؽ افتراضيا
768
Vbdefaultbutton4
يجعؿ الزر الراا في الصندوؽ افتراضيا
0
Vbapplicationmode
يجعؿ نمط الصندوؽ تطايقي
4096
Vbsystemmode
يجعؿ نمط الصندوؽ نظامي
الم اول،.تجاىؿ Abort ,Retry
,Ignore
يعرض االزراربنعـ،ال،الغاء االمر
Yes ,No ,Cancel
يعرض زري نعـ وال Yes ,No
يعرض زري اعادة الم اولو والغاء االمر
Retry ,Cancel
يجعؿ الزر االوؿ في صندوؽ ال وار
افتراضيا
16384
vbmsgboxhelpbuttonيظير زر المساعده في الصندوؽ
65536
Vbmsgboxsetforegroيجعؿ الصندوؽ فوؽ كاف .النوافذ
und
Vbmsgboxright
يجعؿ عنواف الصندوؽ في يميف شريط
524288
العنواف
1048576
vbmsgboxrtlreading
يجعؿ اتجاه الصندوؽ مف اليميف لميسار
ا يث تظير ازرار االوامر وااليقونات
متوافقو م صناديؽ ال وار العرايو
49
ااإلضػػاف .الػػى الدالػػ MSGBOX .فػػاف ىنالػػؾ طريقػػ .أخػػرى إلخ ػراج الايانػػات وىػػي ااسػػتخداـ
عاػارة الطااعػ PRINT .وصػيغتيا ب تعايػر معػيف
PRINT
يػث اف العاػارة PRINT
تطاػ المخرجػػات عمػػى سػط النمػػوذج الجػػدوؿ التػالي ياػػيف القػػيـ التػي ترجعيػػا الدالػػو MsgBox
عند الضغط عمى أي زر فييا وىذه القيـ تتيدنا في امكأني .اتخاذ أي اجراء نريده
الوصؼ بالزر الذي يتـ ضغطو
القيم .المرجع.
1
OK
2
CANCEL
3
ABORT
4
RETRY
5
IGNORE
6
YES
7
NO
آما شكؿ الدال .ب MSGBOXىو عمى شكؿ مرا
وار وىو االشكؿ التالي -:
العنوان TITLE
التوجيو PROMPT
األيقونة التي
المفاتيح ( األزرار ) BUTTON
51
تظهر
انفصم انخبمس/اتخبر انقشاس وػببسات انتكشاس
-1-5مقدمــة -:
اف جميػ ػ لغ ػػات الارمج ػػ .ب أال م ػػا ن ػػدر مني ػػا تتعام ػػؿ مػ ػ الش ػػترات ب جم ػػؿ الارمج ػػ .تع ػػاميً
تسمسػػمياً أي إنيػػا تقػػوـ اتنتيػػذ عااراتيػػا الارمجيػػ .اشػػكؿ تسمسػػمي
، sequentialوىػػذا الشػػي
سػػيؿ جػػداً فػػي الارمجػػ .أمػػا إذا كػػأف لػػدينا عاػػارتيف ونريػػد عػػرض ا ػػدىما ااالعتمػػاد عمػػى قيمػػ.
معين .ىنا يجب فقػط ااسػتخداـ العاػارات ب الجمػؿ الشػرطي .يػث اف ألتكػره األساسػي .لانػاء ىػذه
العاارات ىػو إنيػا تقػوـ ااختيػار قيمػ .معينػ .او مجموعػ .قػيـ أخػرى وعمػى أسػاس ىػذا االختيػار
نقػػوـ اتنتيػػذ عاػػارة معينػػ .او مجموعػػ .عاػػارات ،او عػػدـ تنتيػػذ تمػػؾ العاػػارات الجمػػؿ الشػػرطي.
المتا ػ .فػي لغػVB .
اعضػيا شػرطي .فقػط مثػؿ عاػارتي IF
واعضػيا شػرطي .تك ارريػ .مثػؿ عاػارات
و SELECT CASE
DO- ، DO-WHILE ،
WHILE –DO
LOOPواعضيا تك ارري .فقط ب ولو إنيا ال تعتار عاارة شرطي .أ يانا مثاؿ عاارة FOR
-2-5عوامل المقارنة-:
قاؿ الخوض في العاارات الشرطي .يجب اف نعرؼ ماىي .أشكاؿ وأنواع أدوات وعوامػؿ المقارنػ.
الت ػػي تس ػػتخدـ الختي ػػار قيمت ػػيف او متغيػ ػريف والج ػػدوؿ الت ػػالي يا ػػيف عوام ػػؿ المقارن ػػ .الت ػػي يمك ػػف
استعماليا في التعااير الشرطي .والتي يتي يا معالف Visual Basic
مثاؿ
عامؿ المقارن.
معناه
=
يساوي
a=b
><
ال يساوي
a<>b
>
اكار مف
a>b
<
اصغر مف
a<b
=>
اكار مف او يساوي
a>=b
50
=<
اصغر مف او يساوي
a<=b
-3-5العوامل المنطقية-:
في اعػض األ يػاف ن تػاج الختيػار أكثػر مػف تعايػر شػرطي وا ػد فػي القسػميف IF…THENو
ELSEIFفػفذا أردنػا شػمؿ أكثػر مػف تعايػر شػرطي فػي عاػارة شػرطي .وا ػدة ب وخاصػ .عاػارة
، IFنستخدـ ا د العوامؿ المنطقي .لػراط الشػروط اإلضػافي .سػوي .والجػدوؿ التػالي ياػيف العوامػؿ
المنطقي .المتا .في لغ VB .ومعنى كؿ أداة -:
األداة بالعامؿ المنطقي
معناه
AND
إذا كأف التعايػراف شػرطياف كيىمػا صػ ب أي كيىمػا مت قػؽ
تكػػوف نتيجػػ .التعايػػر العػػاـ صػ ممػػا يػػؤدي الػػى تنتيػػذ العاػػارات
التي تمي الكممTHEN .
OR
إذا كأف ا د التعايريف الشرطييف ص ،تكوف النتيج .ص
NOT
إذا ك ػػأف التعاي ػػر الش ػػرطي خط ػػأ ،تك ػػوف النتيج ػػ .صػ ػ
واذا
كأف التعاير الشرطي ص تكوف النتيج .خطػأ ب أي تقػوـ اقمػب
نتيج .التعاير ،وىذه األداة تستخدـ م تعاير شرطي وا د
XOR
إذا كػػأف كػػي التعاي ػراف نتيجتيمػػا متوافقػػ .ب أي إذا كػػأف كيىمػػا
خطأ أو كيىـ ص
تكوف نتيج .التعاير الشرطي العاـ خطػأ
،واذا اختمتػػت نتيجػػ .التعاي ػريف الشػػرطييف تكػػوف نتيجػػ .التعايػػر
العاـ ص
-4-5عبارة IFالشرطية-:
تعتاػػر عاػػارة IFأىػػـ عاػػارة شػػرطي .فاػػالرغـ مػػف إمكأنيػػ .اسػػتخداـ غيرىػػا مػػف الجمػػؿ الشػػرطي.
والتك ارري .األخرى ولكف اليمكف اف نستغني عنيا اشكؿ نيا ي مف يث انو يمكف االسػتغناء عػف
الجمؿ األخرى ىنالؾ عدة أشكاؿ وىي ات عام .ىي-:
…IF …THEN
…IF…THEN…ELSE
52
…IF …THEN…ELSEIF …ELSE
)IIF (expression , truepart , falsepart
يمكف كتاا .ىذه العاارة عمى سطر وا د:
IF Condition THEN Statement
يث اف Statementىي عاارة مف عاارات لغ VB .او يمكف كتااتيا االشكؿ -:
IF Condition THEN Statement1: Statement2: Statement3
إما في ال .الكتاا .عمى أكثر مف سطر ،يجب إضاف-: ENFIF .
IF condition THEN
statement1
statement2
……….
……….
ENDIF
يكوف الشرط conditionعادة عاارة عف تعاير منطقي ب مقارن .مثيً يرج إمػا صػ
true
او خطأ Falseيمكف أيضا اف يكػوف الشػرط أي تعايػر رقمػي ،سػيعتار معػالف VBاف الشػرط
م قػؽ TRUEإذا كأنػت نتيجػ .التعايػػر قيمػ .ال تسػػاوي الصػتر وأال فانػػو سػيعتار الشػػرط غيػػر
م قؽ FALSEسيقوـ VBفي اؿ ت قؽ الشرط اتنتيذ التعميمات الموافق .لمشرط
ال ظ اف الشترتيف التاليتيف متكاف تيف -:
IF X>Y THEN X=Y: Y=Z
IF X<Y THEN
X=Y
Y=Z
ENDIF
الشكؿ التالي لعاارة IFىو -:
IF ….THEN… ELSE….
فػػي ىػػذه ال الػػ .لػػدينا شػػرط معػػيف إذا ت قػػؽ نريػػد اف ننتػػذ تعميمػػات معينػػ .واال بأي إذا لػػـ يت قػػؽ
الشرط ننتذ تعميمات أخرى يمكف اف نكتب العاارة عمى سطر وا د فقط-:
IF condition THEN statement ELSE statement
IF condition THEN statement1:statement2 ELSE statement 1:statement2
53
كما يمكف اف نكتب العاارة عمى عدة اسطر -:
IF condition THEN
Statement –if – true
ELSE
statements-if –false
End if
الشكؿ :
)IIF (expression, truepart,falsepart
تقػوـ ىػذه الدالػ .ااختيػار التعايػر ، expressionفػفذا وجدتػو TRUEفأنيػا تقػوـ افرجػاع الجػزء
true partإمػا إذا وجدتػو FALSEفأنيػا سػوؼ تقػوـ افرجػاع الجػزء false trueفػي المثػاؿ
التػػالي ،يمكػػف كتااػػ .شػػترتو فػػي الكيػػاف formب كيػػاف النمػػوذج يػػث انػػو يعتاػػر إذا كأن ػت قيمػػ.
المتغيػر NUMBERاكاػر مػف 1000فػاف الدالػ IFF .سػتعيد السمسػم .الرمزيػLARGE .
إمػػا إذا كأن ػت قيمػػ.
NUMBERاصػػغر او يسػػاوي 1000فأنيػػا سػػوؼ تعيػػد السمسػػم .ألرمزيػػو
SMALLوالشترة ىي -:
DIM NUMBER AS INTEGER
DIM CHECKL AS STRING
)'NUMBER = INPUTBOX ('INTER THE NUMBER
ب"CHECK=IIF(NUMBER>1000,"LARGE","SMALL
PRINT CHECK
الشكؿ :
…IF … THEN … ELSEIF …ELSE
يستخدـ ىذا الشكؿ في اؿ وجود عدة كتؿ مف الايانات ،كتمو وا دة فقط مف اينيا سوؼ تنتذ
وصيغتيا -:
IF condition THEN
][statement block-1
[else if condition2 then
]]statement block-2
……….
……….
54
………
[else
]][statement block-n
end if
يقوـ معالف VBااختيار أوؿ شرط CONDITION 1ففذا وجده غيػر م قػؽ ب FALSE
فانػػو ينتقػػؿ الختيػػار الشػػرط الثػػاني ، CONDITION 2وىكػػذا دواليػػؾ إذا كأنػت ىنالػػؾ
شػػروط أخػػرى
تػػى يجػػد شػػرطاً م قق ػاً ،عنػػدىا سػػيتنتذ كتمػػ .العاػػارات الموافقػػ .ليػػذا الشػػرط ثػػـ
ينتقؿ لمتعميمات التػي تمػي end ifب أي انػو ال يت ػص أي شػرط مػف الشػروط التاليػ .لمشػرط
الذي ت قؽ واالتالي فاف كتم .عاارات وا دة عمى األكثر فقط ستنتذ
يمكػػف اف ت ػػوي التعميمػػ .الشػػرطي .عمػػى ، ELSEعنػػدىا وفػػي ػػاؿ عػػدـ ت قػػؽ أي شػػرط مػػف
الشروط الموضوع ، .سيقوـ VBاتنتيذ كتم .العاارات الموافق .لػ ELSE
-5-5مثال توضيحي-:
المشػػروع التػػالي ىػػو مثػػاؿ جيػػد ليوض ػ اسػػتخداـ الشػػكؿ األخيػػر مػػف إشػػكاؿ عاػػارة IFالشػػرطي.
وكذلؾ استخداـ الدالتيف INPUTBOXو MSGBOXواستخداـ ا د العوامػؿ المنطقيػ .وىػو
ANDالمشػػروع عاػػارة عػػف ادخػػاؿ اسػػـ المسػػتخدـ وكممػػ .ا لمػػرور الخاصػػ .اػػو فػػفذا كان ػت
AHMADاو
ALIاألسػ ػػماء وكمم ػ ػػات مػ ػػرور الخاصػ ػػ .اػ ػػو ىػ ػػي
SCIENCEو
ENGINEERINGعمػى التػوالي فانػو فػي الػ AHMAD .سػوؼ يعػرض صػورة معينػ .ب
صورة اسا .ورسال .معين .إما في ال ALI .فانو سػوؼ يعػرض صػورة أخػرى ورسػال .أخػرى
إمػا إذ لػـ يكػف االسػـ AHMADوال ALIفانػو سػوؼ يعػرض رسػال .خطػا معينػ .المشػروع
يتكوف مف نموذج وفيو متتاح امر وا د -:
واجي .النموذج -:
SHOW
55
مفتاح امر
COMMAND1
اسمو SHOW
إعداد خصائص الكيانات
االعداد
.الخاصي
SHOW
CAPTION
BOLD,ARIAL
FONT
الكياف
COMMAND1
16 ا جـ
كتابة شفرة المشروع
-: SHOW فقط والذي اسموCOMMAND1 شترة الكياف.نقوـ اكتاا
USERNAME =INPUTBOX ("ENTER YOUR FIRST NAME ")
PASSWORD =INPUTBOX ("ENTER YOUR PASSWORD")
IF (USERNAME ="AHMADكAND (PASSWORD="SCIENCE")THEN
MSGBOX ("WELLCOME AHMAD !READY TO START")
FORM1.PICTURE=LOADPICTURE(""C:\program files\microsoft
visual studio\common\graphics\metafile\ computer\computer.wmf")
ELSEI (USERNAME ="ALI")AND (PASSWORD=" ENGINEERING")
MSGBOX (WELLCOME ALI !READY TO DISPLAY")
FORM1.PICTURE=LOADPICTURE(""C:\program files\microsoft
visual studio\common\graphics\metafile\ office\book1.wmf" ")
ELSE
MSGBOX ("SORRY,IDONT KNOW YOU")
END
ENDIF
-: SELECT CASE الجممة الشرطية-6-5
كخيػار أخػر عوضػاً عػف العاػارةSELECT CASE عاػارةVisual Basic .تقػدـ لنػا لغػ
. عاػػارات مػػف اػػيف مجموعػػ. اختيػػار كتمػػ. لمقيػػاـ اعمميػػIF…THEN…ELSEIF…ELSE…
56
مػ ػ ػ ػػف الكتػ ػ ػ ػػؿ تعطػ ػ ػ ػػي العاػ ػ ػ ػػارة
SELECTإمكأنيػ ػ ػ ػػات مشػ ػ ػ ػػااي .لعاػ ػ ػ ػػارة
CASE
… IF…THEN…ELSEIF…ELSEاالاني ػ ػػا تجع ػ ػػؿ التعميم ػ ػػات الارمجي ػ ػػ .أكث ػ ػػر وض ػ ػػو اً
وأسرع في التنتيذ
تقوـ ىذه العاارة ات ص تعاير وا د Test Expresionفي اداي .الجمم .ومف ثـ مقارن .نتيجػ.
التعايػػر م ػػف مجموع ػػ .تع ػػااير ب ك ػػؿ تعاي ػػر مػ ػرتاط مػ ػ
TEXTEXPRETIONمػ ا ػػد التعػػااير
المرتاط .م
CASEوعن ػػد تط ػػااؽ قيم ػػ .التعاي ػػر
Expresion Listفأنيػػا سػػتنتذ كتمػػ .العاػػارات
CASEالمتوافق.
كما في الصيغ .العام .التالي .لعاارة -: SELECT CASE
SELECT CASE test expression
[case expression1
]][statementblock-1
[case expression list2
]][statementblock-2
[case else
]][statement block-n
END SELECT
تأخذ expression listا د اإلشكاؿ التالي-:. قيم .وا دة expr
عدة قيـ ……expr1,exp2,
مدى معيف بمجاؿ مف القيـ expr to expr
مقارن > is comp expr .المتغير <
ب يث compىو معامؿ مقارن<>،<=،>=،=، > ، <: .
كؿ Statementblockب كتم .عاارات عاارة عف جمم .وا دة او أكثر-7-5مثال توضيحي-:
في المشػروع التػالي ني ػظ مثػاؿ جيػد السػتخداـ عاػارة select caseيػث سػوؼ يتعػرؼ عمػى
عمر شخص معيف واذا كأف ضمف مدى معيف فسوؼ يخرج رسال .معين-:.
57
-: إعداد الواجهة
عنواف
label1
command1 مفتاح امر
show امسه
Show
إعداد خصائص الكيانات
االعداد
" SHOW"
.الخاصي
Caption
Caption
الكياف
Command1
Label1
-: COMMAND1 كتابة شفرات
AGE = INPUT BOX (" ENTER YOUR AGE")
SELECT CASE AGE
CASE IS < 13
LABEL 1 .CAPTION ="YOUR CHILD"
CASE 13 TO 19
LABEL 1.CAPTION ="YOU SECONDORY STDENT"
CASE 21
LABEL 1.CAPTION ="YOU IN THE UNIVERSITY"
CASE IS >100
LABEL 1.CAPTION ="LOOKING GOOD"
CASE ELSE
LABEL 1.CAPTION ="THAT ANINC AGE TOBE "
END SELECT
58
-8-5عبارة التكرار -: Do
عاػػارات التكرارىػػي عاػػارة وا ػػدة وىػػي عاػػارة DO…LOOPوالتػػي تقػ فػػي أراعػػ .إشػػكاؿ ،فػػي
جمي ىذه اإلشكاؿ يكوف ىنالؾ شرط معيف ي دد استمرار التكرار او عدـ استمرار التكرار
TRUEاو FALSEاو تعايػر
كما في عاارة IFفػأف الشػرط ىػو إمػا تعايػر منطقػي يرجػ
يرجػ قيمػػ .رقميػػ .ب تعتاػػر قيمػ .التعايػػر التػػي ال تسػػاوي صػتر ىػػي ،TRUEواذا كأنػت تسػػاوي
صتر فأنيا FALSE
واالف نأتي لدراس .إشكاؿ ىذه العاارة عمماً إننا سنتناوؿ م كؿ شكؿ مف ىذه اإلشكاؿ أمثم .وىذه
األمثم .مكتوا .في شترة كياف النموذج-:
-1فػي الشػكؿ التػالي ل ػ DO… LOOPفػاف تكػرار تنتيػذ كتمػ .العاػارات STATEMENT
سيستمر طالما كأف الشرط CONDITIONغير مت قؽ-:
DO UNTIL condition
][STATEMENT
][EXIT DO
][STATEMENT
LOOP
عندما يصؿ معالف المغ .الى ىذه العاػارة فانػو سػيادأ اوأل ااختيػار CONDITIONفػفذا وجػده
مت ققاً TRUEفأنو سوؼ يقتػز فػو اًر لمػا اعػد سػطر LOOPب أي انػو سػوؼ لػف ينتػذ عاػارات
ال مقػػ ، .إمػػا إذا وجػػده FALSEفأنػػو سػػتنتذ العاػػارات
STATEMENTثػػـ يعػػود لمسػطر
DO UNTILليختار ثاني .السطر ويعاد التنتيذ إذا كأف الشرط FALSEاو يخرج مف العاارة
إذا كأف الشرط TRUEوىكذا…
واالتالي فػاف عاػارات ال مقػ .سػتنتذ عػدداً مػف المػرات طالمػا اقػي الشػرط FALSEولػف تنتػذ وال
مرة إذا كأف الشرط منذ الادايTRUE .
العاارة EXIT DOتؤدي الى الخػروج التػوري مػف عاػارة التكػرار ب أي عنػد تنتيػذ ىػذه العاػارة ال
ينتػذ معػالف لغػ VB .عاػارات ال مقػ .التػي تمييػا وال يعػاود الػدورات اػؿ يقتػز مااشػرة خػارج عاػارة
ألدواره بأي الػى الجممػ .التػي تمػي كممػLOOP .
اف تظير أكثر مف مرة في ال مق.
59
يمكػف ليػذه العاػارة ب عاػارة EXIT DO
-9-5مثال توضيحي -:
لنترض إننا نريد ساب مجموع االعداد مف 1الى -:10
DIM X AS INTEGER ,I AS INTEGER
I=1
X=0
DO UNTIL I>10
X=X+I
I-I+1
LOOP
ال مق DO UNTIL .السااق .ستنتذ 10مرات ،في كؿ مػرة تػزداد قيمػ .المتغيػر Iا ػ 1
فػي
ال مق .األولى ستزيد Xاػ ، 1وفي ال مق .الثاني .ستزيد Xاػ 2وىكذا في أخر تنتيذ الدوارة ب
ال مق .تكوف قيم I .مساوي .لػ 10فتزيد Xاػ 10ثـ تصا
Iمساوي .لػ 11فيت قؽ الشرط
UNTILونخرج مف الدوارة
-2الشػكؿ الثػاني لم مقػ .التك ارريػ .الشػرطي DO … LOOP .ينتػذ العاػارات فػي أوؿ دورة ثػـ
يختار الشرط ،أي اف العاارات ستنتذ عمى األقؿ مرة وا دة ،يتوقػؼ التكػرار ػيف يصػا الشػرط
مت ققاً -:
]DO [STATEMENTS
][EXIT LOOP
][STATEMENTS
LOOP UNTIL condition
المثاؿ التالي ىو مثاؿ جيد لتوضي عاارة DO UNITوه يقوـ اقراءة درج .ال اررة االتيرنيايت
وي وليا الى السيميزي - :
" PROMPT = " ENTER A FAHRENHEIT TEMPERATURE
DO
)"FTEMP =IN PUT BOX ( prompt, " Fahrenheit to Celsius
IF F TEMP <> " " THEN
)Celsius = INT ((F TEMP +40 ) * 5/9 -40
"MSGBOX (Celsius) ,"TEMPERATURE TO Celsius
61
ENDIF
" "= LOOP UNTIL FTEMP
END
-3الشػكؿ الثالػث وىػو
DO WHILEفػي ىػذا الشػكؿ مػف الػدورات الشػرطي .التك ارريػ ، .تنتػذ
العاػ ػػارات فقػ ػػط إذا كػ ػػأف الشػ ػػرط مت قق ػ ػاً ويتوقػ ػػؼ التك ػ ػرار عنػ ػػدما يصػ ػػا الشػ ػػرط غيػ ػػر مت ق ػ ػػؽ
-: FALSE
DO WHILE condition
])[STATEMENT(S
][EXIT DO
])[STATEMENT(S
LOOP
يمكف كتاا .مثاؿ جم االعداد مف 1الى 10ااستخداـ ىذا الشكؿ
DIM X AS INTEGER , I AS INTEGER
I=1
X=0
DO WHILE I<= 10
X=X+1
I=I+1
LOOP
-4الشػػكؿ ال ارا ػ واألخيػػر مػػف أشػػكاؿ الػػدوارة
DO –LOOPىػػي الػػدوارة
DO-LOOP
WHILEفػػي ىػػذا الشػكؿ تنتػػذ العاػػارات مػرة وا ػػدة عمػػى األقػػؿ ويتوقػؼ التكػرار عنػػدما يصػػا
الشرط غير مت قؽ -:
DO
])[STATEMENT(S
][EXIT DO
])[STATEMENT(S
)LOOP WHILE condition(s
يمكف اخذ مثاؿ درجات ال رار كمثاؿ جيد لتيـ ىذا الشكؿ-:
DO
)" F=INPUTBOX ("ENTER AFAHRENHEIT TEMPRATURE
IF F <>" " THEN
)a=INT (( F+40)*5/9-40
" MSGBOX (a),t," TEMPRATURE TO CELSUS
ENDIF
60
" "><LOOP WHILE F
END
-10-5عبارة التكرار -: FOR
ىػػذه الجمم ػ .تسػػتخدـ فقػػط لتك ػرار تنتيػػذ مجموعػػ .مػػف العاػػارات ب كتمػػ .مػػف العاػػارات لعػػدد مػػف
الم ػرات ،يػػث عنػػد الوصػػوؿ الػػى ال ػػد األعمػػى لمتك ػرار سػػوؼ يخػػرج مػػف الػػدوارة وفيمػػا عػػداه ال
يخػرج ،وال يعتمػد الخػروج عمػى شػرط منطقػي او عمميػ .سػااي .معينػ .لغػ VB .تمتمػؾ عاػارة
وا دة فقط ىي عاارة تكرار وىي عاارة -: FOR – NEXT
تستخدـ عاارة DOالسااق .عادة عندما ال نعرؼ مساقاً عدد مرات تكرار تنتيذ عاارات ال مق.
إمػػا إذا كنػػا نع ػػرؼ مسػػاقاً ع ػػدد م ػرات تكػ ػرار تنتيػػذ مجموعػػو م ػػف العاػػارات فأن ػػو مػػف األفض ػػؿ اف
نستخدـ عاارة FORالتك ارري ، .يػث انػو عمػى خػيؼ DOفػأف عاػارة FORتسػتخدـ متغيػر
يسػػمى عػػداد الػػدوارة ب ال مقػػ .يػػزداد او يػػنقص ف ػي كػػؿ دورة مػػف دورات تك ػرار ال مقػػ .الصػػيغ.
العام .لعاارة FOR
-:
]FOR counter =start (initial value ) TO end [step
])[STATEMENT(S
][EXIT FOR
])[STATEMENT(S
]NEXT [COUNTER
يث اف -:
COUNTER
ىػو متغيػر نوعػو INTEGERوال ن تػاج لتعريتػو ب عػداد ال مقػو
القيم .الادا ي .إلعداد ال مق.
)START(initial value
END
STEP
القيم .النيا ي .لعداد ال مق.
مقػدار الزيػادة او النقصػاف قػيـ عػداد ال مقػ .اعػد كػؿ تنتيػذ لعاػارات
ال مق.
جمي ىذه الخيارات ىي قيـ رقمي.
62
مالحظه -:
يمكف اف تكوف STEPموجا .او سالاو إذا كأنت STEPموجاو فأف STARTيجب اف
تكوف اصغر او تسػاوي قيمػ END .كػي تنتػذ عاػارات ال مقػ .إمػا إذا كأنػت قيمػ STEP .سػالاو
فػأف STARTيجػب اف تكػوف اكاػر او تسػاوي قيمػ END .إذا لػـ ت ػدد الخطػوة STEPفػأف
معالف المغو يعتارىا اشكؿ تمقا ي زيادة امقدار1
يقوـ معالف لغ VB .االخطوات التالي .لتنتيذ عاارة -: FOR
-1يسند القيم START .الى عداد ال مقCOUNTER .
-2يت ػص فيمػا إذا كأنػت قيمػ .العػداد اكاػر مػف ENDفػي ػاؿ كػوف STEPموجػب ،فػفذا
كأنت اكار فأنو سيقتز فيما اعد NEXTب أي ال ينتذ عاارات ال مق.
ب في الػ .اف STEP
سالا .فأنو يت ص فيما إذا كأنت قيم .العداد اصغر مف END
-3وأال فأنو سينتذ تعميمات ال مق.
-4اعػػدىا سػػيزيد مقػػدار العػػداد اػ ػ 1إذا لػػـ تكػػف
STEPم ػػددة واال فأنػػو سػػيزيدهباو ينقصػػو
امقدار STEP
-5سيعود تكرار الخطوات مف 2الى 4
مثال عن استخدام عبارة : FOR
مثاؿ جم االعداد مف 1الى 10ااستخداـ FOR
DIM X AS INTEGER
FOR I= 1 TO 10
X=X+I
NEXT I
-11-5أمثمة توضيحية إضافية :
-1-11-5مثال 1
63
في ىذا المثاؿ سوؼ نستخدـ متتاح امر ومرا نص ودال .ادخاؿ input boxسوؼ نقارف اسـ
نقوـ افدخالو مف خيؿ دال .االدخاؿ ففذا كػأف مطػااؽ السػـ معػيف ولػيكف مػثيً ك ALIك فأنػو
سوؼ يطا العاارة كOK YOUR NAME IS ALIك واالسوؼ يطا االسـ فقط -:
إعداد الواجهة
مربع نص text1
مفتاح امرcommand2
مفتاح امرcommand1
إعداد الخصائص
الكيان
االعداد
الخاصية
Caption
Caption
Command1
Command2
Input
Exit
كتابة الشفرات -:
شترة األمر command 1ىي:
DIM NAME AS STRING
)"Name = INPUTBOX (" INTER YOUR NAME ", "NAMEBOX
IF NAME ="ALI" THEN
" TEXT1.TEXT="OK,YOUR NAME IS ALI
ELSE
TEXT1.TEXT=NAME
ENDIF
شترة األمر COMMAND 2وىي -:
64
END
-2-11-5مثال 2
في ىذا المثاؿ سوؼ نستخدـ واجي .إليجاد جدوؿ ضرب أي عدد وطااع .النتا ف في مرا قا م.
واسػتخداـ عػدة أسػاليب ب او عاػارات وىػي عاػارة FORوعاػارة DO UNITوعاػارة DO
WHILEس ػػوؼ نس ػػتخدـ ع ػػدة مت ػػاتي ونس ػػتخدـ مراػ ػ قا م ػػ .وا ػػد ونس ػػتخدـ مراػ ػ تس ػػمي.
LABELوكما يمي -:
إعداد واجهة -:
COMMAND1
COMMAND2
INPUT
مربع قائمة
LIST1
CLEAN
COMMAND3
FOR..
COMMAND4
DO
WHILE
COMMAND5
DO
UNTIL
COMMAND6
QUIT
LABEL1
65
إعداد خصائص كيانات الواجهة-:
الكيان
االعداد
الخاصية
COMMAND1
CAPTION
ك INPUTك
COMMAND2
CAPTION
كCLEANك
COMMAND3
CAPTION
ك …FORك
COMMAND4
CAPTION
كDO WHILE..ك
COMMAND5
CAPTION
كDO UNTILك
COMMAND6
CAPTION
كQUITك
LABEL1
CAPTION
كX-MULTIك
كتابة شفرة المشروع -:
أوال وقاؿ كؿ شئ نقوـ االتصري امتغير ما وليكف Xفي الجزء GENERALوكـ يمي :
OPTION EXPLICIT
DIM X AS INTEGER
ثـ نقوـ اكتاا .شترات متاتي األوامر
األمر COMMAND1ب عند استخداـ ىذا األمر نقوـ افدخاؿ العدد المراد جدوؿ الضرب لو
)"X=INPUT BOX ("ENTER ANY NUMBER","MULTI-TABLE
األمر : COMMAND2وىو يستخدـ لتنظيؼ مرا القا م LIST1 .مف اي شػيء موجػود فػي
داخمو-:
LIST1.CLEAR
األمػػر : COMMAND3ىػػذا األمػػر يسػػتخدـ إليجػػاد جػػدوؿ الضػػرب لمعػػدد Xالػػذي تػػـ إدخالػػو
اواسط .متتاح األمر INPUTوذلؾ ااستخداـ عاارة FORويتـ طااعػ .النػاتف جػدوؿ الضػرب
في القا م-: LIST1 .
DIM I AS INTEGER
66
LIST 1 .CLEAR
FOR I=1 TO 10
LIST1.ADDITEM I*X
NEXT I
شػترة األمػر : COMMAND5وىػو يسػتخدـ إليجػاد جػدوؿ الضػرب لمعػدد Xااسػتخداـ عاػارة
-: DO WHILE –LOOP
DIM I AS INTEGER
LIST1.CLEAR
I=1
)Do while (I<=10
LIST1.ADDITEM I*X
I=I+1
LOOP
شػػترة األمػػر :COMMAND6وىػػو يسػػتخدـ إليجػػاد جػػدوؿ الضػػرب لمعػػدد Xااسػػتخداـ عاػػارة
-:DO UNTIL –LOOP
DIM I AS INTEGER
LIST1.CLEAR
I=1
)DO UNTIL (I>10
LIST1.ADDITEM I *X
I=I+1
LOOP
-3-11-5مثال 3
يوض ىذا المثاؿ كيتي .التعامؿ م مراعات القوا ـ وكيتيػ .التعامػؿ مػ عناصػر تمػؾ القػوا ـ فػي
ىػػذا المثػػاؿ سػػوؼ نسػػتخدـ مرا ػ قا مػػ .نض ػ فيػػو مجموعػػ .مػػف االعػػداد ب عنػػد التنتيػػذ ومرا ػ
القا م .أخر نس ب مجموع .مف االعداد التي تقاؿ القسم .عمى 3اػدوف اػاقي مػف مراػ القا مػ.
االوؿ ونضػػعيا فػػي مراػ القا مػػ .الثػػاني وذلػػؾ مػػف خػػيؿ متتػػاح امػػر معػػيف وتسػػتخدـ مراػ قا مػػ.
ثالثػػ .نض ػ فيػػو االعػػداد الترديػػ .مػػف خػػيؿ متتػػاح أخػػر معػػيف يػػتـ س ػ ب ىػػذه االعػػداد مػػف مرا ػ
القا م .االوؿ وكما يمي -:
67
إعداد واجهة المشروع
مربع قائمة
LIST3
ODDS
COMMAND 3
مربع قائمة
LIST2
مربع قائمة
LIST1
3-No.
INSERT
COMMAND 2
COMMAND 1
إعداد خصائص الكيانات- :
الكياف
اإلعداد
الخاصي.
COMAND1
CAPTION
ك INSERTك
COMAND2
CAPTION
ك 3 – NO .ك
COMAND3
CAPTION
ك ODDSك
كتابة شفرات المشروع - :
-1الكياف -: COMMAND1
68
DIM I AS INTEGER
LIST1.CLEAR
FOR I = 1 TO 50
LIST1.ADDITEM
I
NEXT I
- : COMMAND2 شترة الكياف-2
DIM I AS INTEGER
LIST2.CLEAR
FOR I = 1 TO 50
IF VAL( LIST1.LIST (( I ))) MOD 3=0 THEN
LIST2.ADDITEM LIST1.LIST(I)
END IF
NEXT I
-: COMMAND3
DIM I AS INTEGER
LIST3.CLEAR
FOR I = 1 TO 50
IF VAL ( LIST1.LIST(( I ))) MOD 2=1 THEN
LIST2.ADDITEM LIST1.LIST ( I )
END IF
NEXT I
69
شترة الكياف-3
انفصم انسبدس/انمصفىفبت
-1-6مقدمــة-:
ما هي المصفوفة :المصػتوف .ب ومعناىػا MATRIXأو ARRAYأو CLASSىػي
عاػػارة عػػف ىيكػػؿ ايػػاني موجػػود فػػي جميػ لغػػات الارمجػػ .ويػػتـ تمثيمػػو فػػي ال اسػػا .امجموعػػ .مػػف
مواق الذاكرة المتجاورة ب يجػب إف تكػوف متجػاورة ويكػوف لجميػ عناصػر المصػتوف .نتػس النػوع
الاياني لكف قيميا تختمؼ مف عنصر إلى أخر
تقسـ المصتوفات مف يث تعامميا م الذاكرة إلى -:
مصتوفات المتغيرات
مصتوفات أدوات الت كـ
المصتوفات الديناميكي.
إما مف يث إاعاد المصتوف .فأنيا تقسـ إلى -:
المصتوفات المتجي .ب أو المصتوفات األ ادي.
المصتوفات متعددة األاعاد ب ثنا ي ، .ثيثي …… ، .الخ
-2-6مصفوفات المتغيرات -:
إف مصػػتوفات المتغيػرات متيػػدة ألنيػػا تسػػاعد عمػػى تعقػػب كميػػات كايػرة مػػف الايانػػات اطػػرؽ كأنػت
لتكوف غير ممكن .لو استعممت المتغيرات التقميدي .كذلؾ تتي مصتوفات المتغيرات عمى استخداـ
مجموعػػ .كاممػػ .مػػف القػػيـ ااسػػتعماؿ اسػػـ وا ػػد ثػػـ معالجػػ .القػػيـ اشػػكؿ فػػردى أو جمػػاعي عاػػر
استعماؿ مق FOR – NEXT .أو أ دى عاارات …do
-3-6إنشاء المصفوفة
يتـ إنشاء تصري المصتوفات قي الارنامف مثمما يتـ تصػري المتغيػ ارت لكػف المكػأف الػذي تصػرح
فيو المصتوف .ي دد مكأف استعماليا أو ما يسمىب مجاليا
DOMAINفي الارنامف
اذا تـ تصري المصتوف .م مياً ،يمكف اسػتعماليا فػي األجػراء الػذي صػر تو فيػو فقػط إمػا إذا تػـ
تصري يا عمومياً في و ده نمطي .قياسي .فيمكف استعماليا في أي مكأف في الارنامف
-4-6الصيغة العامة لممصفوفة-:
إف التركيب الن وي األساسي لتصري المصتوف .ثاات .ال جـ ىو-:
71
PUBLIC arrayname ( DIM1elements,DIM2elements,……)AS datatype
يث إف :
: PUBLIC ىي الكمم .الدليمي .التي تنش ي مصتوف .عام .ويمكف إف تكوف STATIC
إذا كأف تصري المصتوف .خاص.
:arrayname ىو اسـ المصتوف ، .وىو اسـ متغير يمكف إف يكوف أي اسـ ويتضػؿ إف
يكوف ذا معنا يو ي إلى صم .معين .االمصتوف.
: DIM1elements ىو عدد عناصر في الاعد األوؿ في المصتوف.
:DIM2elements ىو عدد العناصر في الاعد الثاني في المصتوف.بيمكف إنشػاء إاعػاد
إضػػافي .فػػي المصػػتوف .فالمصػػتوف .التػػي ت تػػوي عمػػى اعػػد وا ػػد فأنيػػا تسػػمى مصػػتوف.
أ ادي .واذا كأنت ت توي عمػى اعػديف فأنيػا تسػمى مصػتوف .ثنا يػ .وىكػذا إمػا عػف عػدد
عناصػػر المصػػتوف .فأنػػو اصػػؿ ضػػرب عػػدد العناصػػر إاعػػاد المصػػتوف ،.فػاذا كػػأف الاعػػد
األوؿ ى ػػو 5والاع ػػد الث ػػاني ى ػػو 3ف ػػأف ع ػػدد عناص ػػر المص ػػتوف .ب 15=5*3إم ػػا إذا
كأن ػت المصػػتوف .ثيثيػػ .وااعادىػػا ىػػي ب 5، 3 ،2فػػأف عػػدد عناصػػر المصػػتوف .ىػػو ب
30=5*3*2
مالحظة أ يانا وفي ال .المصتوفات األ ادي .ال يتـ ت ديد عدد عناصر المصتوف .وىػذا مػا
يدعى االمصتوف .الديناميكي.
: datatypeىػي الكممػ .الدليميػو التػي ت ػدد نػوع الايانػات التػي سػتخزف فػي المصػتوف.
أي انػػو إذا كػػأف نػػوع الايانػػات INTEGERفػػأف جميػ الايانػػات يجػػب إف تكػػوف إعػػداد
ص ي .واذا كأف STRINGفأنيا يجب إف تكوف جميعيا سيسؿ رمزيػ .إال فػي الػ.
النوع الاياني variantفأنو يقاؿ أي نوع اياني
مالحظة
اخصػوص فيرسػػ .عناصػػر المصػػتوف .فأنػػو ياػػدأ اشػػكؿ تمقػػا ي مػػف الصػػتر إي انػػو إذا كػػأف عػػدد
عناصر المصتوف .ىو 10فأنو سوؼ يتـ فيرس .العناصر مف 0إلى 9وىي عشرة عناصر
إما إذا أردنا إف تاػدأ التيرسػ .مػف 1فأننػا يجػب إف نصػرح فػي الادايػ .ايػذا األسػاس وذلػؾ اوضػ
العاارة OptionBase1في الجزء generalفي نافذة اؿ codeاالضاط كما عممنا م العاارة
option explicit
70
-5-6التعامل مع المصفوفات بداخل شفرة البرنامج
امػػا إف المصػػتوف .ىػػي مجموعػػ .مػػف الايانػػات مػػف نتػػس النػػوع ل ػذلؾ مػػف الضػػروري جػػداً عنػػدما
نتعامػػػؿ معيػ ػػا إف نسػ ػػتخدـ أ ػ ػػدى دورات التك ػ ػرار ب العاػػػارات التك ارري ػػ .واف أفضػ ػػؿ العاػػػارات
التك ارري .المي م .لمتعامؿ م المصتوفات ىي عاارة for…next
يث إنيا عاػارة تك ارريػ .غيػر
مشروط .كذلؾ فأف فييا عداد قيم .األولي .والنيا ي .معمومتػاف وىػذا ىػو ػاؿ المصػتوف .يػث إف
القيمػػ .األوليػػ .لمعػػداد تمثػػؿ ادايػػ .التيرسػػ .لممصػػتوف .ب ال ػػد األدنػػى لممصػػتوف .والقيمػػ .النيا يػػ.
لمعداد تمثؿ نياي .التيرس .لممصتوف .بال د األخير ليا
وسوؼ يتض فيما يأتي ماتـ شػر و اخصػوص المصػتوفات اال اديػو والثنا يػ .وذلػؾ فػي كػؿ مػف
المشاري االتي-: .
-6-6امثمة توضيحية حول المصفوفات:
-1-6-6المشروع األول
في ىذا المشروع سوؼ يتـ التعامؿ م مصتوف .أ اديو ت توي عمى مجموعػ .قػيـ تمثػؿ مجموعػ.
مف الدرجات وسوؼ يتـ اختاار أي مف ىذه الدرجات ىي العميا وأي منيا ىي األقؿ-:
-1تصميم واجهة المشروع
Test
Quit
COMMAND1
COMMAND2
72
إعداد خصائص الكيان
اإلعداد
Test
Quit
الخاصية
Caption
Caption
الكيان
Command1
Command2
إعداد وكتابة شفرات المشروع
: ىيQuit الذي اسموcommand2 شترة الكياف-1
end
: Test الذي اسموcommand1 شترة الكياف-2
Dim i as integer ,x as integer ,y as integer
Dim title as string
Static degree(5) as integer
For i=0 to 4
title=”degree”&i
degree(i) =inputbox (“enter the degree “,title)
Next i
X=degree(0)
For i=1 to 4
If x>=degree(i) then
Msgbox (“ the higest degree is “& x)
Else
Y=x
X=degree(0)
degree(i)=y
End if
Next i
For i= 1 to 4
If x<degree(i) then
Msgbox(“the lowest degree is “& x)
Else
73
Y=x
)X=degree(i
degree(i)=y
End if
Next i
-2-6-6المشروع الثاني
سنتعمـ في ىذا المشروع طريقو أخرى لقراءة وطااع .عناصر المصػتوف .يػث سنسػتخدـ مراعػات
نػص اقػدر عػدد عناصػر المصػتوف .وىػي فػي ال قيقػ .مراػ نػص وا ػد ولكػف نقػوـ اتكػ ارره اطريقػػ.
النسخ والمصؽ ،وىذه الطريق .بالنسخ والمصؽ متيدة فػي الػ .م مصػتوفات عناصػر الػت كـ مػثي
في ال .مصتوف .مف الصور imageاو مصتوف .مف اإلشكاؿ shape
في مثالنا ىذا سنقوـ اقراءة بادخاؿ مصتوف .ا ادي .مكون .مف 10اعداد ويتـ ترتيايا مره تنازليا
ومره تصاعديا ويتـ قراءة المصتوف .وطااعتيا مف خيؿ نتس مراعات النص
اعداد واجهة المشروع-:
واجهة املشروع عند تنفيذ الرتتيب التصاعدي
74
خيؿ اعداد واجي .المشروع وخاص .عندما نريد انشاء مصػتوف .عناصػر الػت كـ بفػي ىػذا المثػاؿ
مصتوف .مراعات النص عمينا مراعاة االمور التالي-:.
ننشئ مرا نص عمى النموذج ونسميو مثي mtxtونضاط خصا صو ساما نريد
نضغط clickايمف عمى مرا النص ونختار االمر نسخ copyثـ نضغط clickايمف
عمى مكأف فارغ عمى سط النموذج ونختػار االمػر لصػؽ pasteثػـ نختػار yesني ػظ
تـ انشاء مرا نص جديد ي مؿ نتس اسـ مرا النص االوؿ
خيؿ الخطوة السااق .عندما اخترنا االمر لصؽ ظير لنا مرا
وار ي وي متتا يف ىمػا
yesو Noوي توي عمى الرسال .االتي:.
ب you already have a control named 'mtxt' .Do you want to create a
?control array
الرسال .اعيه تعنيبانؾ تممؾ عنصر ت كـ ىؿ تريد انشاء مصػتوف.
عناصر ت كـ
1اذا اخترنا Noسينشئ مرا نص العيق .لو امرا النص االوؿ
2اذا اخترن ػػا Yesسينش ػػئ مراػ ػ ن ػػص جدي ػػد اس ػػمو mtxtوالخاص ػػي index .ل ػػو
مساوي .لػ 1
ني ػػظ اف الخاصػػي index .لمراػ الػػنص االوؿ قاػػؿ عمميػػ .النسػػخ والمصػػؽ كأنػت فارغػػ.
ولكف اصا ت 0اعد العممي .وىذا يعتار امثاا .عداد لمراعات الػنص بلمصػتوف .عناصػر
الت كـ
اعداد خصائص كيانات المشروع-:
الكيان
اإلعداد
الخاصية
Command1
Captionترتيب تصاعدي
Command2
Captionترتيب تنازلي
Command3
Captionخروج
كتابة شفرات الكيانات-:
1شترة الكياف كخروجك End :
2شترة الكياف كترتيب تصاعديك :
Dim a(10) As Integer
75
Dim i As Integer, j As Integer
Dim x As Single
For i = 0 To 9
a(i) = Val(mtxt(i))
Next i
For i = 0 To 9
For j = i + 1 To 9
If a(j) < a(i) Then
x = a(j)
a(j) = a(i)
a(i) = x
End If
Next j
Next i
For i = 0 To 9
mtxt(i) = a(i)
Next i
: شترة الكياف كترتيب تنازليك3
Dim a(10) As Integer
Dim i As Integer, j As Integer
Dim x As Single
For i = 0 To 9
a(i) = Val(mtxt(i))
Next i
For i = 0 To 9
For j = i + 1 To 9
If a(j) > a(i) Then
x = a(j)
a(j) = a(i)
a(i) = x
End If
Next j
Next i
For i = 0 To 9
mtxt(i) = a(i)
Next i
المشروع الثالث-3-6-6
76
فػػي ىػػذا المشػػروع سػػنتعمـ كيتيػػ .ق ػراءة عناصػػر المصػػتوف .با اديػػ .او ثنا يػػ .مػػف خػػيؿ
االداة inputboxوكيتي ػػ .طااع ػػ .عناص ػػر المص ػػتوف .عم ػػى النم ػػوذج ااس ػػتخداـ العا ػػارة
Print
في ىذا المشروع سنقوـ اقراءة مصتوف .مراع.ب 3x3ثـ ااداؿ عناصر الصػؼ االوؿ مػ
عناصر الصؼ االخير وطااع .المصتوف .عمى النموذج قاؿ واعد عممي .االاداؿ
اعداد واجهة المشروع-:
واجهة املشروع عند التنفيذ
اعداد خصائص الكيانات-:
الكيان
اإلعداد
الخاصية
Caption
Caption
Command1
Command2
كتابة شفرات المشروع-:
77
Read/replace
exit
شترة االمر end : exit
شترة االمر read/replace
Dim a(3, 3) As Integer
Dim i As Integer, j As Integer
Dim x As Single
For i = 0 To 2
For j = 0 To 2
)"a(i, j) = InputBox("inter any number
Next j
Next i
For i = 0 To 2
For j = 0 To 2
;" " & )Print a(i, j
Next j
Print
Next i
For j = 0 To 2
)x = a(0, j
)a(0, j) = a(2, j
a(2, j) = x
Next j
Print: Print
For i = 0 To 2
For j = 0 To 2
;" " & )Print a(i, j
Next j
Print
Next i
في المشروع األتي سنستخدـ طريق .تعتاربمف وجي .نظر المارمف مف افضؿ الطرؽ لمتعامؿ م
المصػػتوفات فػػي اي ػػ VB .يػػث انػػو فػػي المشػػروع االوؿ تػػـ اسػػتخداـ الدالػػ Msgbox .الظيػػار
النتػػا ف وىػػذا اليسػػم لنػػا امعاينػػ .جمي ػ عناصػػر المصػػتوف .فػػي آف وا ػػد ،فػػي المشػػروع الثػػاني
78
استخدمنا مراعات نص وىذه ال ال .غير ايجااي .يث اليمكف استخداميا في ال .كػوف عناصػر
المصتوف .ذات عددكاير جدا بمثي مصتوف .تتكوف مػف 100عنصػر ،وىػذا يتطمػب منػا انشػاء
مراعػػات ن ػػص كثي ػرة ج ػػدا ،ك ػػذلؾ غيػػر فعال ػػ .ف ػػي الػػ .ت دي ػػد عناص ػػر المصػػتوف .خ ػػيؿ تنتي ػػذ
الارنامف ،اما في المشروع الثالث فقد تـ استخداـ سط النموذج لطااع .عناصػر المصػتوف .وىػذه
ال الػػ .غيػػر فعالػػ .ايضػػا يػػث انيػػا سػػوؼ تشػػغؿ مسػػا .غيػػر معروفػػ .مسػػاقا مػػف سػػط النمػػوذج
وىذا ما يؤثر سماا عمى الكيانات االخرى
-4-6-6المشروع الرابع-:
في ىذا المشروع سنتعمـ كيتي .التعامؿ مف خيؿ األداة Inputboxلقراءة عناصرىا واستخداـ
مرا نص وا د فقط إلظيار نتا ف المعالج .كطااع .جمي عناصر المصتوف .او جزء منيا
،سنقوـ في ىذا المشروع اقراءة مصتوف .مراعوب 3x3ااستخداـ االداة inputboxثـ نقوـ اااداؿ
عناصر العمود االوؿ م عناصر العمود االخير مف المصتوف .ثـ نقوـ اطااع .المصتوف .اعد
عممي .التاديؿ في مرا النص
اعداد واجهة المشروع-:
واجهة المشروع عند التنفيذ
اعداد خصائص الكيانات-:
الكيان
اإلعداد
الخاصية
79
Read/replace
Exit
txt1
True
Caption
Caption
Name
Multiline
Command1
Command2
Text1
-:كتابة شفرات المشروع
end : exit شترة االمر
read/replace شترة االمر
Dim a(3, 3) As Integer
Dim i As Integer, j As Integer
Dim x As Single
For i = 0 To 2
For j = 0 To 2
a(i, j) = InputBox("inter any number")
Next j
Next i
For i = 0 To 2
For j = 0 To 2
txt1.Text = txt1.Text & a(i, j) & Space(2)
Next j
txt1.Text = txt1.Text & vbNewLine
Next i
For i = 0 To 2
x = a(i, 0)
a(i, 0) = a(i, 2)
a(i, 2) = x
Next i
txt1.Text = txt1.Text & vbNewLine
For i = 0 To 2
For j = 0 To 2
txt1.Text = txt1.Text & a(i, j) & Space(2)
Next j
txt1.Text = txt1.Text & vbNewLine
Next i
81
-7-6العمميات الحسابية والمصفوفات-:
سنتناوؿ ىنا كيتي .اجراء العمميات ال سااي.بجم ،طرح،ضرب،قسم .ايف عنصر ومصتوف .وايف
مصتوف .ومصتوف .أخرى
-1-7-6العمميات الحسابية بين عنصر ومصفوفة-:
إف إج ػراء أي عمميػػ .سػػااي .بجم ػ ،طػػرح ،ضػػرب ،قسػػم .اػػيف أي عنصػػر ومصػػتوف .تػػتـ اكػػؿ
سػػيول .بفػػي كػػي ػػالتي المصػػتوفات اال اديػػ .والثنا يػػ.
يػػث يػػتـ اج ػراء تمػػؾ العمميػػ .اػػيف ذلػػؾ
العنصػػر واػػيف جمي ػ عناصػػر المصػػتوف .ا يػػث تنػػتف لنػػا مصػػتوف .ااعادىػػا نتػػس ااعػػاد عناصػػر
المصتوف ،.وكما موض في االمثم .التالي:.
مثال:1ناخذ ىنا مثاؿ وؿ ضرب عنصر وليكف Xفي مصتوف .ا ادي .ولتكف Aوكما يمي:
اعداد واجهة المشروع-:
واجهة المشروع عند التنفيذ
اعداد خصائص الكيانات-:
الكيان
اإلعداد
الخاصية
80
Read/Multiple
Exit
txt1
True
Caption
Caption
Name
Multiline
Command1
Command2
Text1
-:كتابة شفرات المشروع
end : exit شترة االمر
read/multiple شترة االمر
Dim a(3) As Integer
Dim i As Integer
Dim x As Single
x = InputBox("enter any single number")
For i = 0 To 2
a(i) = InputBox("inter any number")
Next i
txt1.Text = x & vbNewLine
For i = 0 To 2
txt1.Text = txt1.Text & a(i) & Space(4)
Next i
txt1.Text = txt1.Text & vbNewLine
For i = 0 To 2
txt1.Text = txt1.Text & (a(i) * x) & Space(4)
Next i
: قمنا ااالتيRead/Multiple خيؿ شترة االمر
اعػدىا قمنػا اقػراءةa ب. ا اديػ. ثػـ تعريػؼ مصػتوف،. المػراد ضػراو االمصػتوفX تعريؼ العنصر
اعػدىا تػـInputbox . الدالػ. وكي القػراءتيف تمػت اطريقػFor اعاارة.العنصر ثـ قراءة المصتوف
فػػي سػػطر جديػػد فػػي مرا ػ الػػنص وذلػػؾ. العنصػػر فػػي مرا ػ الػػنص ثػػـ طاعنػػا المصػػتوف.طااعػػ
space(4) . امػا الدالػ، وتعنػي ت ريػؾ المؤشػر الػى سػطر جديػدvbnewline .ااستخداـ الطريقػ
82
فػػتـ اسػػتخداميا ل جػػز ف ارغػػات اقػػدر ارا ػ خانػػات ويمكػػف زيػػادة او تقميػػؿ ىػػذا العػػدد مػػف الت ارغػػات
سب الرغا ، .لكي تظير فراغات ايف عناصر المصتوف.
اع ػػدىا قمن ػػا ا ػػاجراء عممي ػػ .الض ػػرب ا ػػيف العنص ػػر وجميػ ػ عناص ػػر المص ػػتوف .وطااع ػػ .عناص ػػر
المصتوف .الناتج .في سطر جديد اداخؿ مرا النص
مثــال -:2فػػي ىػػذا المثالسػػوؼ نقػػوـ اػػاجراء عمميػػ .الضػػرب اػػيف عنصػػر ومصػػتوف .مراعػػو ،وكمػػا
موض ادناه:
اعداد واجهة المشروع-:
واجهة المشروع عند التنفيذ
83
-:اعداد خصائص الكيانات
اإلعداد
Read/Multiple
Exit
txt1
True
الخاصية
Caption
Caption
Name
Multiline
الكيان
Command1
Command2
Text1
-:كتابة شفرات المشروع
end : exit شترة االمر
read/multiple شترة االمر
Dim a(3, 3) As Integer
Dim i As Integer, j As Integer
Dim x As Single
x = InputBox("enter any single number")
For i = 0 To 2
For j = 0 To 2
a(i, j) = InputBox("inter any number")
Next j
Next i
txt1.Text = x & vbNewLine
For i = 0 To 2
For j = 0 To 2
txt1.Text = txt1.Text & a(i, j) & Space(4)
Next j
txt1.Text = txt1.Text & vbNewLine
Next i
For i = 0 To 2
For j = 0 To 2
txt1.Text = txt1.Text & (a(i, j) * x) & Space(4)
Next j
txt1.Text = txt1.Text & vbNewLine
84
Next i
-2-7-6العمميات الحسابية بين مصفوفة ومصفوفة-:
عند اجراء أي عممي .سااي .مف العمميا االساسي .االرا ايف أي مصتوفتيف فانو يجب اف تكوف
كػػي المصػػتوفتاف متسػػاويتاف فػػي االاعػػاد ماعػػدا عمميػػ .ضػػرب المصػػتوفات الثنا يػػ .وكمػػا سػػياتي
شر و ال قا في موضوع ال ؽ
مثال -:1باجراء عممي .الجم ايف مصتوفتيف ا اديتيف
سػػوؼ نقػػوـ اتعريػػؼ كػػي المصػػتوفتيف
aو bوذات اعػػد وا ػػد ومصػػتوف .ثالثػػ.
cبتمثػػؿ
المصػػتوف .الناتجػػ .اػػنتس الاعػػد ثػػـ نقػػو ـ اطااعػػ .المصػػتوفتيف قاػػؿ الجم ػ وطااعػػ .المصػػتوف.
الناتج.
اخذنا في ىذا المثاؿ اجراء عممي .الجم ويمكف اخذ أي عممي .سااي .اخرى
اعداد واجهة المشروع-:
واجهة المشروع عند التنفيذ
اعداد خصائص الكيانات-:
85
اإلعداد
Read/add
Exit
txtadd
True
الخاصية
Caption
Caption
Name
Multiline
الكيان
Command1
Command2
Text1
-:كتابة شفرات المشروع
end : exit شترة االمر
Read/add شترة االمر
Dim a(3) As Integer, b(3) As Integer, c(3) As Integer
Dim i As Integer
For i = 0 To 2
a(i) = InputBox("inter any number", "array A")
txtadd.Text = txtadd.Text & a(i) & Space(4)
Next i
txtadd.Text = txtadd.Text & vbNewLine
For i = 0 To 2
b(i) = InputBox("inter any number", "array B")
txtadd.Text = txtadd.Text & b(i) & Space(4)
Next i
txtadd.Text = txtadd.Text & vbNewLine
For i = 0 To 2
txtadd.Text = txtadd.Text & (a(i) + b(i)) & Space(4)
Next i
الطرح ايف مصتوفتيف مراعتيف. باجراء عممي-:2مثال
-:اعداد واجهة المشروع
86
واجو المشروع عند التنفيذ
-:اعداد خصائص الكيانات
اإلعداد
Read/sub
Exit
txtsub
True
الخاصية
Caption
Caption
Name
Multiline
الكيان
Command1
Command2
Text1
-:كتابة شفرات المشروع
end : exit شترة االمر
read/sub شترة االمر
Dim a(3, 3) As Integer, b(3, 3) As Integer
87
Dim i As Integer, j As Integer
For i = 0 To 2
For j = 0 To 2
)"a(i, j) = InputBox("inter any number", "array A
)txtsub.Text = txtsub.Text & a(i, j) & Space(4
Next j
txtsub.Text = txtsub.Text & vbNewLine
Next i
txtsub.Text = txtsub.Text & vbNewLine
For i = 0 To 2
For j = 0 To 2
)"b(i, j) = InputBox("inter any number", "array B
)txtsub.Text = txtsub.Text & b(i, j) & Space(4
Next j
txtsub.Text = txtsub.Text & vbNewLine
Next i
txtsub.Text = txtsub.Text & vbNewLine
For i = 0 To 2
For j = 0 To 2
)txtsub.Text = txtsub.Text & (a(i, j) - b(i, j)) & Space(4
Next j
txtsub.Text = txtsub.Text & vbNewLine
Next i
-8-6ضرب المصفوفات الثنائية
اف جمي ػ ػ العمميػ ػػات ال سػ ػػااي .االساسػ ػػي .االرا ػ ػ يمكػ ػػف إجراؤىػ ػػا اسػ ػػيول .ماعػ ػػدا عمميػ ػػ .ضػ ػػرب
المصػػتوفات فانػػو يشػػترط اف يكػػوف عػػدد اعمػػدة المصػػتوف .االولػػى مسػػاو لعػػدد صػػتوؼ المصػػتوف.
الثاني .يكوف ااعاد المصتوف .الناتجػ .ىػي عػدد الصػتوؼ مسػاو لعػدد صػتوؼ المصػتوف .االولػى
وعدد االعمدة ىو مساو لعدد اعمدة المصتوف .الثاني.
فػػاذا كانػػت
) a(3,2و ) b(2,2فػػاف المصػػتوف .الناتجػػ .ىػػي ) c(3,2امػػا عمميػػ .الضػػرب فتػػتـ
سب المعادل .الرياضي .التالي=: .
88
) c(i, j ) a(i, k ) * b(k , j
اي انو كؿ عنصر مف عناصر المصتوف .الناتج .ىو اصؿ مجمػوع ضػرب عناصػر صػؼ ىػذا
العنص ػػر االمص ػػتوف .االول ػػى مػ ػ عناص ػػر العم ػػود المقاا ػػؿ ل ػػو ف ػػي المص ػػتوف .الثاني ػػ .ف ػػاذا اخ ػػذنا
عناصر المصتوفتيف a,bالسااقتيف فاف عناصر المصتوف c .الناتج .تكوف االشكؿ التالي-:
با يث يادأ المصتوفات اػب0،0
])c(0,0)=[a(0,0)*b(0,0)]+[a(0,1)*b(1,0
])c(0,1)=[a(0,0)*b(0,1)]+[a(0,1)*b(1,1
])c(1,0)=[a(1,0)*b(0,0)]+[a(1,1)*b(1,0
])c(1,1)=[a(1,0)*b(0,1)]+[a(1,1)*b(1,1
])c(2,0)=[a(2,0)*b(0,0)]+[a(2,1)*b(0,1
])c(2,1)=[a(2,1)*b(1,0)]+[a(2,1)*b(1,1
المثال التالي ىو وؿ ضرب مصتوفتيف مراعتيف:
اعداد واجهة المشروع-:
واجهة المشروع عند التنفيذ
اعداد خصائص الكيانات-:
89
اإلعداد
Read/multiple
Exit
txtmult
True
الخاصية
Caption
Caption
Name
Multiline
الكيان
Command1
Command2
Text1
-:كتابة شفرات المشروع
end : exit شترة االمر
read/multiple شترة االمر
Dim a(3, 2) As Integer, b(2, 2) As Integer
Dim c(3, 2) As Integer
Dim i As Integer, j As Integer, k As Integer
For i = 0 To 2
For j = 0 To 1
a(i, j) = InputBox("inter any number", "array A")
txtmult.Text = txtmult.Text & a(i, j) & Space(4)
Next j
txtmult.Text = txtmult.Text & vbNewLine
Next i
txtmult.Text = txtmult.Text & vbNewLine
For i = 0 To 1
For j = 0 To 1
b(i, j) = InputBox("inter any number", "array B")
txtmult.Text = txtmult.Text & b(i, j) & Space(4)
Next j
txtmult.Text = txtmult.Text & vbNewLine
Next i
txtmult.Text = txtmult.Text & vbNewLine
For i = 0 To 2
For j = 0 To 1
For k = 0 To 1
c(i, j) = c(i, j) + (a(i, k) * b(k, j))
91
Next k
txtmult.Text = txtmult.Text & c(i, j) & Space(4)
Next j
txtmult.Text = txtmult.Text & vbNewLine
Next i
90
انفصم انسببغ/انذوال وانبشامج انفشػية
Functions & Procedures
-1-7مقدمــة:
اشكؿ عاـ ،الدواؿ والا ارمف الترعي .عاػارة عػف اػرامف-او اجػزاء اػرامف-ثانويػ .يػتـ اسػتخداميا
الداء غرض معيف ومف فوا دىا:
تقميؿ وتيفي التكرار في اناء الارامف مرة اخرىتقميؿ الوقت المطموب لاناء الارامف والمشارعالتقميؿ مف الذاكرة المطموا .لشترات وايانات المشروعىنالؾ نوعيف مف الارامف الترعي .مف يث مكأف الاناء والتصري ىما:
الو ػػدات النمطيػػ Module .وىػػي تمثػػؿ ا ػػد الكيانػػات االساسػػي .التػػي تقػػدميا لغػػVB .
لممارمجيف يث يتـ إنشاؤىا مف خيؿ قا م project\add new module .بكمػا تػـ شػر و فػي
التصؿ االوؿ ضمف شرح شريط القوا ـ في ىػذه الو ػدة النمطيػ .يػتـ تعريػؼ المتغيػرات والكيانػات
التي يتـ استخداميا فقط ويتـ كتاا .الارامف المراد اجراءىا كامم.
الارامف الترعي .الخاص .االمشروع المراد عممو وىي تشتمؿ عمى الدواؿ والاػرامف الترعيػ،.
ويتـ تعريتيا في الجزء Generalالموجود في كؿ نموذجبفي نافػذة الشػترات Code Window
الترؽ ايف ىذيف النوعيف ىو اف الو دات النمطي Module .يمكػف اسػتخداميا فػي أي كيػاف اػاي
نموذج موجود ضمف المشروع اما النػوع االخػر فانػ .يمكػف اسػتخدامو فقػط ضػمف الكيانػات التااعػ.
لنموذج وا د فقط
-2-7الدالة -: Function
الشكؿ العاـ لتعريؼ أي دال .ىو-:
[public| private] function name [(argument list)] :data type
])[statement(s
])[statement(s
End Function
يث اف:
92
][public| private
:تعنػي اف ىػذه الدالػ .ىػي ذات تصػري خػاص او عػاـ فػاذا
كأن ػت ذا تص ػري خػػاص نكتػػب فقػػط privateواذا كأن ػت ذا تص ػري عػػاـ نكتػػب ،publicوىػػي
عااره اختياري .يمكف عدـ استخداميا
: function nameاسـ الدال .وىو جزء يجب استخدامو
]): [(argument listتعني قا م .المعاميت الخاصػ .االدالػ .ويػتـ وضػعيا اػيف اقػواس
وىي اختياري .يث في ال .عدـ وجود معاميت اليتـ كتاا .ىذا الجزء
: Data typeتعني النوع الاياني الخاص االدال .ص ار
ويمكف استخداـ الصيغو اعػيه فػي و ػدة نمطيػ .مسػتقم .او فػي نتػس نافػذة الشػترات التااعػو لػنتس
النموذج وذلؾ في الجزء General
عنػػد اسػػتدعاء أي دالػػو يػػتـ كتااػػ .اسػػميا ثػػـ اق ػواس اذا كأن ػت ت تػػوي عمػػى معػػاميت فيػػتـ وض ػ
اسماء المعاميت ايف االقواس واذا كأنت الت توي عمى معاميت اليتـ وض اقواس
التػػرؽ اػػيف الدالػػ .والارنػػامف الترعػػي ىػػو اف الدال ػػ .تقػػوـ اارجػػاع قيمػػ .ذات نػػوع ايػػاني وا ػػد ام ػػا
الارنامف الترعي فاف يقوـ اارجاع قيم .وا دة او عدة قيـ مف انواع اياني .مختمت.
مثاؿ وؿ استخداـ الدوؿ -: Function
نقوـ اوال اتت و دة نمطي Module .ونكتب فييا الشترة التالي: .
Function numberic(n as integer) as string
Select case n
”Case 1:numberic=”first
”Case 2:numberic=”second
”Case 3:numberic=”third
”Case 4:numberic=”fourth
”Case 5:numberic=”fifth
End select
End function
93
يتضح ىنا كيفية فتح وحدة نمطية جديده
شكل يوضح كيفية فتح وحدة نمطية جديده
ثـ نض عمى النموذج متتاح امر ومراعي نص ونكتب في متتاح االمر الشترة التالي.
Dim a as integer
)A=val(text1.text
)Text2.text=numberic(a
94
شكل المشروع عند التنفيذ
فػػي ىػػذا المشػػروع نقػػوـ اوال اكتااػػ .رقػـ بمػػف 1إلػػى 5فػػي مراػ الػػنص االوؿ ثػػـ نضػػغط click
ايسر عمى متتاح االمر يث سوؼ يقوـ الارنامف اطااع .ىذا الرقـ كتاا .في مرا الػنص الثػاني
-3-7دوال التعامل مع النصوص -:
في لغ VB .ىنالؾ مجموع .مف الدواؿ الجاىزة التي تسيؿ العمػؿ والتعامػؿ مػ النصػوص وىػذه
الدواؿ ىي :
الدال.
)Len(s
)Left (S,N
استخداميا
تتيد طوؿ السمسم.
مثاؿ
)” Len(“aliفأنيا تعيد 3
S
) Left(“ali”,2فأنيا تعيد ali
تعيد nرموز السمسم.
95
Sادأ مف يسارالسمسمو s
) Right (S,nتعيد nمف رموز السمسمs .
) Right (“ali”,1فأنيا تعيد كIك
ادا مف يميف السمسمs .
) Mid (s,n,mتعيػػد mمػػف رمػػوز السمسػػم(“mahamed”,3,5) .
تعيد ك ”hmed
s
ادء مف الرمز n
)Ltrim(s
Midفأني ػػا
تمسػ ػ ػ الت ارغ ػ ػػات م ػ ػػف يس ػ ػػار بك aliك ltrimفأنيا تعيد ali
السمسػ ػ ػػم S .إذا كػ ػ ػػأف ىنالػ ػ ػػؾ
فراغات
)Rtrim(s
تمسػ ػ ػ الت ارغ ػ ػػات م ػ ػػف يم ػ ػػيف بك aliك rtrimفأنيا تعيد ali
السمسمs .
)Trim(s
تمس ػ ػ الت ارغػ ػػات مػ ػػف يمػ ػػيف بك aliك trimفأنيا تعيد ali
ويسار السمسمs .
)Ucase(s
ت وؿ أ ػرؼ السمسػم s .إلػى بك aliك Ucaseفأنيا تعيد ALI
أ رؼ كايرة
)Lcase (s
ت وؿ أ ػرؼ السمسػم s .إلػى بك aliك Lcaseفأنيا تعيد ali
أ رؼ صغيرة
)ASC(S
تعيػػد رقػػـ ال ػػرؼ Sالموجػػود بك aliك ASCفأنيا تعيد 65
في جدوؿ رموز ASCII
)CHR(N
تعي ػػد ال ػػرؼ ال ػػذي رقم ػػو CHR(65) Nفأنيا تعيد كAك
في جدوؿ رموز ASCII
-4-7البرامج الفرعية -: Procedures
الصيغو العام .لتعريؼ الامرامف الترعي .ىي-:
])[public| private] sub name [(argument list
])[statement(s
96
])[statement(s
End sub
ويػػتـ اسػػتدعاء الارنػػامف الترعػػي امػػا اكتااػػ .اسػػمو فقػػط اذا كػػأف الي تػػوي عمػػى عمػػى معػػاميت او
اكتااػػ .الدالػػ call .ثػػـ اسػػـ الارنػػامف الترعػػي ووضػ قوسػػيف ىيليػػيف اعػػد اسػػـ الارنػػامف اواكتااػػ.
اسػػـ الارنػػامف الترعػػي فقػػط ثػػـ وضػ المعػػاميت اػػيف اقػواس ويمكػػف اسػػتخداـ الصػػيغو اعػػيه فػػي
و دة نمطي .مستقم .او في نتس نافذة الشترات التااعو لنتس النموذج وذلؾ فػي الجػزء General
97
انفصم انثبمن/انمهفبت وقىاػذ انبيبنبت
Files and DataBase
-1-8الممفات -:Files
الممؼ:ىػػو عاػػارة عػػف سمسػػم .مػػف ال ػػروؼ واالرقػػاـ المتتااعػػو ذات جػػـ معػػيف ويػػتـ تخزينػػو عمػػى
و دة تخزيف خارجيSecondary Memory .
تستطي لغ Visual Basic .التعامؿ م ثيث انواع مف الممتات ىي :
1الممتات المتتااعSequential Files .
2الممتات العشوا يRandom Access Files .
3الممتات الثنا يBinary Files .
وفيما يمي شرح متصؿ لكيتي .التعامؿ م ىذه األنواع الثيث:
-2-8الممفات المتتابعة -: Sequential Files
يتكوف ىذا الممؼ مف سمسم .مف ال روؼ واالرقاـ مقسم .كالسطور وسميت االمتتااعو الف عممي.
قراءتيػا والا ػث فييػػا عػف أي رمػػز او ػرؼ او جممػػ .او كممػو او فقػرة تكػوف االتتػػاا فمػثي عنػػدنا
نريد اف نق ار الرمز السادس الموجود في السطر الخامس فاف المعالف يمر عمى جمي الرموز التي
تساؽ ىذا الرمز وىكذا ،مما يؤدي الى ضياع وقت في عممي .الا ث وتتميز ىذه الممتات اانيػا
يمكف قراءة م توياتيا ااستخداـ أي معالف لمنصوص
العمميات التي يمكف إج ار يا عمى الممتات المتتااعو:
1انشاء ممؼ جديد
2فت ممؼ موجود مساقا
3القراءة مف ممؼ
4الكتاا .في ممؼ جديد
5االضاف .الى ممؼ موجود مساقا
6غمؽ ممؼ
وفيما يمي شرح موجز ليذه العمميات:
.1انشاء ممف جديد:
98
اليوجد امػر خػاص اانشػاء ممػؼ جديػد ولكػف يمكػف اعتاػار عمميػ .فػت أي ممػؼ لمقػراءة
منو اولمكتاا .في .ىي امثاا .انشاء ممؼ جديد
2فتح ممف:
الصيغو العام .المر فت الممؼ في لغ VB .ىي:
طوؿ السجؿ= lenرقـ اختياري لمممؼ for input as#اسـ الممؼ Open
يث اف:
اسـ الممؼ:ىػو االسػـ المسػموح فيػو داخػؿ نظػاـ الػػب DOSو/او امتػداده أي
يتكوف مف ثماني .ا رؼ ك د اقصى ثـ يتاػ اػػب ثـ امتػداد ذلػؾ الممػؼ وىػو
اما يكوف datاو txt
:For input ويقصد ايا اف ىذا الممؼ متتوح لغرض القػراءة منػو فقػط ولكػي
يتػػت لمكتااػػ .فيػػو نسػػتادؿ ىػػذه الجممػػ .اػ ػ for outputولكػػي نتػػت الممػػؼ
ليضاف .اليو نستادليا اػ for append
رقـ اختيػاري لمممؼ:وىػو رقػـ ينسػب ليػذا الممػؼ ويػتـ التعامػؿ ايػذا الػرقـ مػ
الممؼ ادال مف اسمو ال قيقي
طوؿ السجؿ:ويقصد او االخزيف الوقتي ، Bufferوالمقصود او ىنا ىو عدد
الرموز القصوى التي يمكف التعامؿ ايا م الممؼ فػي العمميػ .الوا ػدة-قػراءة
اوكتاا-.فمو ددنا ىذا المتغير اػ– 80عمى سايؿ المثػاؿ-فاننػا سػنتعامؿ مػ
الممؼ او دات طوليا 80رمز في المرة الوا دة
مي ظ:.
-1اما أف اسـ الممؼ ىو نص إذا يجب وضعو ايف عيمتي تنصيص مزدوجوبعيمتي
اقتااس ك ك
-2اذا كػأف الممػؼ المػراد التعامػؿ معػػو موجػود ضػمف المجمػػد ال ػالي الػػذي نعمػؿ اداخمػػو
بالمجمػػد الػػذي ي ػػوي المشػػروع المنشػػأ ،فاننػػا فقػػط نكتػػب اسػػـ الممػػؼ وىي تػػو ،امػػا اذا
كػػأف الممػػؼ الم ػراد التعامػػؿ معػػو خػػارج المجمػػد الموجػػود فيػػو المشػػروع فاننػػا يجػػب اف
نكتب امتداده االتماـ مثي :
""C:\My Document\a1.txt
99
-3
القراءة من الممف:
الصيغ .العم .المر القراءة مف الممؼ ىي:
متغيرالقراءة ,رقـ الممؼ االختياريLine input#
يث اف :رقـ الممؼ االختياري:تـ شر و سمتا
متغير القراءة:ويقصد او متغير مػف النػوع stringيػث يقػوـ معػالف المغػو اقػراءة سػطر
كامؿ مف
الممؼ ويضعو اداخؿ ىذا المتغير
مثػ ػػاؿ:في ىػ ػػذا المثػ ػػاؿ نقػ ػػوـ اق ػ ػراءة متغيػ ػػر رمػ ػػزي اسػ ػػمو lineneadثػ ػػـ نقػ ػػوـ اتت ممػ ػػؼ اسػ ػػمو
myworkوىو موجود انتس المجمد نتت و لمقراءة ونسػميو اػػب 1ون ػدد طػوؿ ال ػ bufferاصػتر
ث ػػـ نقػ ػراء المم ػػؼ س ػػطر اع ػػد اخ ػػر ااس ػػتخداـ ال ػػدوارة Do…loopوي ػػتـ ع ػػرض م توي ػػات المم ػػؼ
ااستخداـ الدال msgbox .التي تعرض سطر كؿ مرة :
Dim linenead as string
Open "mywork" for input as #1 len=0
)Do until eof(1
Line input #1,linenead
Msgbox linenead
Loop
Close #1
-4الكتابة في الممف-:
الصيغ .العام .المر الكتاا .في الممؼ ىي :
متغير الكتاا ,.رقـ الممؼ االختياريPrint#
يث اف :رقـ الممؼ االختياري:وىو ما تـ التصري او عند فت الممؼ لمطااع.
متغير الكتاا:.وىو اسـ المتغير المراد كتاا .م توياتو داخؿ الممؼ
المثاؿ التالي يوض عممي .الكتاا .في الممؼ:
Dim firstname as string
Dim secondname as string
Open "mywork" for output as #1 len=100
"Print #1 "this is my first time to write a file
011
"Firstname="Ahmed
"Secondname="Mohammed
Print #1, firstname, secondname
Close #1
مي ػظػػات
عنػػد فػػت الممػػؼ لمكتااػػ .فػػاف معػػالف لغػػ VB .يقػػوـ امس ػ جمي ػ م تويػػات ذلػػؾ الممػػؼ
وتيي تو لمكتاا .فيو
إذا أردن ػػا الكتاا ػػ .ف ػػي المم ػػؼ ا ػػدوف فق ػػداف ف ػػي م تويات ػػو الس ػػااقو فيج ػػب اف نت ػػت المم ػػؼ
ليضاف.
ال يمكف إجراء عمميتيف عمى الممؼ في وقت وا د ،فالممؼ المتتػوح لمكتااػ .او ليضػاف.
اليمكف القراءة منو اال اذا تـ غمق .ثـ فت .مرة اخرى لمقراءة ،والعكس االعكس
-5غمق الممف-:
عند فت أي ممؼ الجراء أي عممي .عميو فيجب غمقو قاؿ انياء اليرنامف ،الصيغو العام .المػر
غمؽ الممؼ ىي:
رقـ الممؼ االختياريClose#
-3-8الدوال المستخدمه مع الممفات:
EOF 1بوىي اختصار لػ End Of Fileوتستخدـ الختاار وصوؿ المؤشر الػى نيايػ.
الممؼ او ال وتستخدـ االصيغو التالي:.
) thenرقـ الممؼ االختياري(If EOF
"Msgbox "End Of File
End if
: Filelen() 2وىي دال .تعيد جـ الممؼ ااال رؼ وتستخدـ االصيغ:.
) رقـ الممؼ االختياري(An=filelen
يث اف Anمتغير رقمي
-4-8الممفات ذات الدخول العشوائي -: Random Access Files
ويقصػػد ايػػا تمػػؾ الممتػػات التػػي يػػتـ ترتيػػب م توياتيػػا اشػػكؿ عش ػوا ي ولػػيس تسمسػػمي ا يػػث عنػػد
ال اجػػ .لق ػراءة مجموعػػو مػػف الايانػػات منيػػا ففننػػا ال نضػػطر لممػػرور عمػػى جمي ػ الايانػػات السػػااق.
لمايانات المطموا .وانما نصؿ الييا مف خيؿ رمز يشير لمخمي .التي ت وي تمؾ الايانات
010
العمميات التي يمكف القياـ ايا عمى الممتات ذات الدخوؿ العشوا ي -:
1تعريؼ تركيب السجؿ
2فت الممؼ
3القراءة مف الممؼ
4تعديؿ سجؿ داخؿ الممؼ
5االضاف .لمممؼ
6غمؽ الممؼ
-1تعريف تركيب السجل:
السجؿ:وىو ىيكؿ ايػاني يتضػمف عػدة انػواع مػف الايانػات ولمعرفػ .فكػرة السػجؿ اشػكؿ أدؽ ناخػذ
مثي ايانات ىوي .الطالب ،فيوي .الطالب تتضمف رقـ الطالػببتعريؼ الطالػب IDواسػـ الطالػب
وعنوانو وتاريخ مييده
ني ػػظ اف تعريػػؼ الطالػػب ىػػو نػػوع رقمػػي integerواسػػـ الطالػػب وعنوانػػو ىػػي سيسػػؿ رمزيػػ.
stringوتاريخ مييده ىو مف نوع التاريخ الذي ىو سجؿ فرعي اخر
الصيغ .العامو لتعريؼ تركيب السجؿ ىي:
اسـ نوع السجؿ Type
نوعو as
اسـ ال قؿ االوؿ
نوعو as
اسـ ال قؿ الثاني
.
.
نوعو asاسـ ال قؿ االخير
End type
المثاؿ التػالي يوضػ كيتيػ .تعريػؼ نػوع سػجؿ ي تػوي عمػى ايانػات طالػب وىػي رقموبتعريتػو ID
واسمو وعنوانو وتارخ مييده بتاريخ المييد ىو سػجؿ اخػر يػتـ تعريتػو قاػؿ تعريػؼ سػجؿ الايانػات
الر يسي ويتضمف قوؿ اليوـ والشير والسن .كػذلؾ سػنتعمـ كيتيػ .تعريػؼ متغيػر كنػوع سػجؿ او
مصتوف .مف السجيت
array of recordوكيتي .قراءة ىذه المصتوفو والمثاؿ ىو:
Type dat
012
Day as integer
Month as integer
Year as integer
End type
Type student
Id as integer
Name as string*30
Address as string*50
Brithdat as dat
End type
Dim my_student as student
Dim class_student(10) as student
Dim I as integer
For i=0 to 9
Class_student(i).id=inputbox("inter the ID of the student")
Class_student(i).name=inputbox("inter the name of the student")
Class_student(i).address=inputbox("inter the address of the student")
Class_student(i).brithdat.day=inputbox("inter the number of day of the
student")
Class_student(i).brithdat.month=inputbox("inter the number of month
of the student")
Class_student(i).brithdat.year=inputbox("inter
the
number
of
yearbrithday of the student")
Next i
:فتح الممف-2
: المر فت الممؼ ىي.الصيغو العام
Open اسػـ الممػؼ الخػارجيfor random as# رقػـ الممػؼ االختيػاريlen= طػوؿ
السجؿ
: يث اف
ىو امتداد واسـ الممؼ المراد التعامؿ معو:اسـ الممؼ الخارجي
الممؼ او ليتـ التعامؿ م الممؼ مف خػيؿ ىػذا.أي رقـ يتـ تسمي:رقـ الممؼ االختياري
االسـبالرقـ
len() .ىو طوؿ السجؿ ويمكف سااو ااستخداـ الدال:طوؿ السجؿ
013
Example
)A=len(student
Open "C:\DAD\aa" for random as 2 len=a
-3القراءة من الممف:
الصيغ .العام .المر القراءة مف الممؼ ىي:
متغير القراءة ,رقـ السجؿ ,رقـ الممؼ االختياري Get
يث اف:
رقـ الممؼ االختياري :ىو الرقـ االختياري الذي تـ افتراضو عند فت الممؼ
رقـ السجؿ:ىو رقـ السجؿبتسمسؿ السجؿ الذي نرغب اقراءة م توياتو
متغير القراءة:اسـ المتغير الذي نريد قراءة السجؿ اداخمػو وىػو الػذي قمنػا اتعريتػو مسػاقا اػنتس
نوع السجؿ
Example:
Dim stud as student
Get #1,11,stud
-4تعديل محتويات سجل:
لتعديؿ م تويات أي سجؿ يجب اوال اف نقراء السجؿ ثـ نعدؿ م توياتو او م تػوى أي قػؿ مػف
قولو ثـ نعيد كتااتو ونستخدـ في الكتااو االمر : put
متغير الكتاا , .رقـ السجؿ ,رقـ الممؼ االختياري Put
يث اف:
رقـ الممؼ االختياري :ىو الرقـ االختياري الذي تـ افتراضو عند فت الممؼ
رق ػػـ الس ػػجؿ:ىو رق ػػـ السجؿبتسمس ػػؿ الس ػػجؿ ال ػػذي نرغ ػػب اتع ػػديؿ م تويات ػػو او م ت ػػوى ا ػػد
قولو
متغير الكتاا:.اسـ المتغير الذي نكتب م توياتو داخؿ السجؿ
Example:
Dim stud as student
Stud.id=13862
"Stud.name="ali
014
Put #1,11,stud
-5اإلضافة لمممف:
المقصود او اضاف .سجؿ جديد الى نياي .الممؼ وىنا نستخدـ االمر putونعطي لمسجؿ الجديد
رقـ يساوي عدد السجيت الموجودة 1+واذلؾ فانو يضيؼ السجؿ الجديدفي اخر الممؼ
ن تاج ىنا لمعرف .عدد السجيت الموجودة في الممؼ يث نستخدـ القانوف التالي:
عدد السجيت في الممؼ =طوؿ الممؼ/طوؿ السجؿ
يػث اف :طػوؿ الممػػؼ ن صػؿ عميػو ااسػػتخداـ الدالػ filelen() .وطػوؿ السػػجؿ ااسػتخداـ الدالػػ.
)(len
مثاؿ :الضاف .سػجؿ جديػد لمممػؼ الػذي رقمػو االختيػاري 1بعمػى افتػراض اف الممػؼ متتػوح ناػدأ
اوض الم تويات داخؿ المتغير studثـ ن سب عدد السجيت ثـ نضيؼ ىػذا السػجؿ فػي اخػر
الممؼ:
Dim recordlen as integer
Dim stud as student
Stud.id=98501
"Stud.name="mohammed
"Stud.address="Babylon city ,Hilla
Stud.brithdat.day=4
Stud.brithdat.month=11
Stud.brithdat.year=1976
)Recordlen=filelen(1)/len(student
Put #1,recordlen+1,stud
-6غمق الممف:
عند فت أي ممؼ فيجب غمقو قاؿ انياء الارنامف ،الصيغ .العامو المر غمؽ الممؼ ىي:
رقـ الممؼ االختياريClose#
-5-8قواعد البيانات -: DataBases
اعد اف نكوف قد فيمنا واشكؿ جيد ماذا تعني قواعػد الايانػات ومػاذا تعنػي الايانػات ومػاذاتعني كػؿ
مػػف السػػجيت والجػػداوؿ وال قػػوؿ اعػػد فيمنػػا ليػػذا كمػػو ،فػػاف معػػالف لغػػ VB .يقػػدـ لنػػا عػػدة طػػرؽ
لمتعامؿ ن قواعد الايانات ىي:
oاالداة OLE
015
oاالداة – Dataاالداة الميم .في التعامؿ م قواعد الايانات
oاالداة – FixdGridا دى ادوات الػActiveX
oالقا مو : Diagramيث اف جمي اوامر ىػذه القا مػ .تتتعػؿ عنػدمؿ يتتاعػؿ التطايػؽ مػ
SQL Serverاو م النظاـ Oracleالنشاء اوتعديؿ مخطط قاعدة الايانات
oالقا م : Add-In .يث اف اوامر ىذه القا م .متعمقػ .اتقنيػات وكا نػات خارجيػ .يػتـ دمجيػا
م اي .التطوير كما ت توي عمى االمر Visual Data Managerالذي يتـ مػف خيلػو
الوصوؿ الى مدير الايانات Visdata
-6-8طرق التعامل مع قواعد البيانات-:
ىنا سوؼ نيتـ االتعامؿ م قاعدة الايانات اطريقتيف وكيىما في االخير يمتقيػاف ااسػتخداـ االداة
Dataبنتعامؿ ىنا فقط م قواعد الايانات Access
الطريق .االولى:
نقوـ االدخوؿ الػى نظػاـ ادارة قواعػد الايانػات Microsoft Accessوانشػاء قاعػدة ايانػات جديػدة
،انشػػاء عمػػى االقػػؿ جػػدوؿ وا ػػد فػػي ىػػذه القاعػػدة بيػػتـ ت ديػػد عػػدد الجػػداوؿ سػػب قاعػػدة الايانػػات
التي نريد إنشاؤىا عند اناء الجدوؿ يتـ ت ديد اسماء ال قوؿ واالنواع الاياني .لكؿ قؿ ثـ عنػد
اكماؿ اسماء ال قوؿ وانواعيا الاياني .نقوـ اتسمي .الجدوؿ واغيقو واغيؽ قاعدة الايانات
الطريق .الثاني:.
انشاء قاعدة ايانات مػف داخػؿ اي ػ .التطػوير VB6وذلػؾ مػف خػيؿ القا مػ Add-In .ثػـ اختيػار
االمػػر Vsual Data Managerسػػوؼ تتػػت لنػػا نافػػذة فػػي مجموعػػ .قػوا ـ ،نختػػار newمػػف
القا مػػ file .ثػػـ نختػػار Accessسػػوؼ تتػػت لنػػا نافػػذة اخػػرى عنوانيػػا Database Window
نضغط امتتاح التأرة االيمف اداخميا فتظير لنا افظ .مف اوامرىا new tableأي اضاف .جدوؿ
جديػػد ،عنػػد اختيػػار ىػػذا االمػػر سػػوؼ تتػػت لنػػا نافػػذة يػػتـ مػػف خيليػػا ادخػػاؿ اسػػـ لمجػػدوؿ وكػػذلؾ
ت توي عمى امر Add Fieldوالمراد منو اضاف .قوؿ لمجدوؿ الػذي ادخػؿ اسػمو ،عنػد الضػغط
عمى ىذا المتتاح سوؼ تتت لنا نافػذة ت تػوي عمػى عػدة قػوؿ ييمنػا منيػا ىػو اسػـ ال قػؿ ونوعػو
الايػاني ثػـ نضػغط Okواذا اردنػػا اضػاف .قػوؿ اخػرى لمجػػدوؿ نضػغط عمػى Add Fieldمػرة
اخػػرى وىكػػذا االنسػػا .لجميػ ال قػػوؿ المػراد اضػػافتيا لمجػػدوؿ ،ثػػـ اعػػد اكمػػاؿ اعػػداد جميػ
قػػوؿ
الجدوؿ نضغط عمى المتتاح Build The Tableيث اف ىذا المتتاح سػوؼ يقػوـ اانػاء قاعػدة
016
الايان ػػات والج ػػدوؿ ف ػػي مم ػػؼ قواع ػػد الايان ػػات Accessواذا اردن ػػا اض ػػاف .ج ػػداوؿ اخ ػػرى نض ػػغط
امتتػػاح التػػارة االيمػػف اػػداخؿ نافػػذة قاعػػدة الايانػػات ونختػػار االمػػر new tableوىكػػذا االنسػػا.
الضاف .جداوؿ اخرى لقاعدة الايانات
يمكػػف ادخػػاؿ ايانػػات الي جػػدوؿ فػػي قاعػػدة الايانػػات وذلػػؾ اػػالنقر امتتػػاح التػػارة االيمػػف عمػػى اسػػـ
الجػػدوؿ ثػػـ نضػػغط عمػػى المتتػػاح Addفتظيػػر لنػػا نافػػذة ذلػػؾ الجػػدوؿ ت تػػوي عمػػى اسػػماء قػػوؿ
الج ػػدوؿ ،واع ػػد ادخ ػػاؿ الايان ػػات نض ػػغط المتت ػػاح Updateالض ػػاف .ى ػػذه الايان ػػات ال ػػى قاع ػػدة
الايانػات ثػػـ نغمػؽ جميػ النوافػذ واػػذلؾ انتيينػػا مػف الطريقػػ .الثانيػ-.اكػػؿ تاكيػد اف الطريقػػ .االولػػى
اسيؿ اكثير مف الطريق .الثاني.
الػى ىنػا ،تػـ اعػداد قاعػدة ايانػات لكػف لػػـ يػتـ التعامػؿ معيػا مػف خػيؿ اي ػ .التطػوير VBمااشػرة
نقو ىنا ااعداد واجي .المشروع واعداد خصا ص الكيانات االشكؿ التالي:
نقوـ اوض االداة Dataعمى النمػوذج ونقػوـ ااعػداد خصا صػيا اوال ويجػب اف يكػوف اوال اعػداد
الخاصػي Connect .يػث مػػف خػيؿ ىػػذه الخاصػي .يػػتـ ت ديػد نوعيػػ .قاعػدة الايانػػات التػي سػػيتـ
االرتاػػاط ايػػا والتعامػػؿ معيا،عنػػد الضػػغط عمػػى ىػػذه الخاصػػي .يظيػػر لنػػا نوعيػػ .قواعػػد الايانػػات
المتا و لنػا ،نختػار Microsoft Accessثػـ نقػوـ ااعػداد الخاصػي DatabaseName .لت ديػد
اسػػـ وامتػػداد قاعػػدة الايانػػات التػػي تػػـ انشػػاؤىا مسػػاقا ثػػـ نقػػوـ ااعػػداد الخاصػػيRecordSource .
وىنػ ػػا تظيػ ػػر لنػ ػػا الجػ ػػداوؿ الموجػ ػػودة فػ ػػي قاعػ ػػدة الايانػ ػػات التػ ػػي تػ ػػـ ت ديػ ػػدىا ضػ ػػمف الخاصػ ػػي.
DatabaseName
الػػى ىنػػا تػػـ اىػػـ خصػػا ص االداة Dataوىػػذا يعنػػي انػػو تػػـ االرتاػػاط اقاعػػدة ايانػػات باف كػػؿ اداة
Dataوا ػػدة يمكػػف مػػف خيليػػا التعامػػؿ مػ جػػدوؿ وا ػػد فقػػط ن تػػاج ايضػػا الػػى مراعػػات نػػص
اقدرعدد الجػدوؿ الػذي تػـ ت ديػدة ضػمف الخاصػي RecordSource .واػذلؾ يكػوف لكػؿ تػؿ فػي
الجدوؿ مرا نص يتـ مف خيلو ادخاؿ ايانات ذلؾ ال قؿ وكذلؾ عرض م تويات ذلؾ ال قؿ
االنسا .لمراعات النص فالخاصي text .تاقى فارغ .والخاصي DataSource .يػتـ اعػدادىا ااسػـ
اداة الايانػػات Dataثػػـ يػػتـ اعػػداد الخاصػػي DataField .يػػث سػػوؼ تظيػػر قا مػػ .ت تػػوي عمػػى
اسماء قػوؿ الجػدوؿ الػذي تػـ ت ديػده ضػمف الخاصػي RecordSource .فػي االداة ، Dataثػـ
نختار اسـ قؿ معيف يث سيكوف مرا ىذا خاص اذلؾ ال قؿ
017
-7-8االداة -: Data
يتم التعامل مع االداة Dataمن خالل الطرق التالية:
الطريقة
معناها
اضاف .سجؿ جديد
Recordset.addnew
تظ السجؿ عمى اخر ادخاؿ
Updaterecord
ذؼ السجؿ ال الي
Recordset.delete
االنتقاؿ الوؿ سجؿبجدوؿ في قاعدة الايانات
Recordset.movefirst
االنتقاؿ الخر سجؿبجدوؿ في قاعدة الايانات
Recordset.movelast
االنتقاؿ لمسجؿبجدوؿ السااؽ في قاعدة الايانات
Recordset.moveprevious
االنتقاؿ لمسجؿبجدوؿ الي ؽ في قاعدة الايانات
Recordset.movenext
اختاار الوصوؿ الى اداي .السجيت
Recordset.bof
اختاار الوصوؿ الى اخر السجيت
Recordset.eof
الا ػ ػ ػػث ع ػ ػ ػػف اوؿ س ػ ػ ػػجؿ ي ق ػ ػ ػػؽ الش ػ ػ ػػرط الم ػ ػ ػػدد
Recordset.findfirst-critiria
criteria
الا ػث عػػف السػػجؿ التػػالي الػػذي ي قػػؽ الشػػرط ال ػػدد
Recordset.findnext-critiria
criteria
الوقوؼ عمى اخر تعديؿ لمسجؿ
Recordset.lastmodified
018
المصـــــــــــــادر References
مايكــل هالفرســون Visual Basic 6.0 , 1999,خطــوة خطــوة ,الطبعــه العربيــة
االولى ,ترجمة :مركز التعريب والترجمة الدار العربية لمعموم,بيروت,لبنان.
د.باســل الخطيــب ,2001,تعمــم فيج ـوال بيســك عــن طريــق االمثمــة,دار الرضــا لمنشــر
,سوريا,دمشق ,الطبعة االولى.
م.عبد المطيف عمرو –م.هاني درويـش ,1996 ,طريـق المبـرمج العربـي الـى احتـراف
البيسك المرئي,خوارزم لمنشر والتوزيع,مصر,االسكندرية.
د.عبــد المطمــب اب ـراهيم احمــد ,Visual Basic ,2004 ,الجامعــه التكنولوجيــة ,
بغداد.
ايفــان كاالهــان ,2002 ,كيــف تنش ـ تطبيقــات قواعــد البيانــات فــي
Microsoft
Access 2002 Visual Basicخطوة خطوة ,الطبعه العربية االولى ,ترجمـة:مركز
التعريب والترجمة ,الدار العربية لمعموم ,بيروت ,لبنان.
019
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )