Professional Documents
Culture Documents
هي برامج تكتب بلغة بيسك يتم تنفيذها أو أستدعائها عند تطبيق حدث معين
على النموذج أو أي كائن موجود على النموذج مثل حدث النقر أو النقر المزدوج
أو حدث أمرار مؤشر الفأرة فوق الكائن.
مثـال ) : (1صمم الشكل التي والذي يحتوي على زر ي أوامر وصندوق نص
وأجعل المشروع يكتب رسالة ترحيب عند نقر الزر الول بينما يؤدي النقر على
الزر الثاني الى مسح رسالة الترحيب.
الشكل )(5-3
التصميم :نكون مشروع قياسي ونضيف عنوان للنموذج بالعبارة "مثال)"(1
ونضيف الكائنات الخرى وهي:
• صندوق نص ونمسح قيمة الصفة Textلنجعله فارغ.
• زر أوامر بالعنوان "أطبع رسالة" والسم .CmdType
• ور أوامر بالعنوان " أمسح الرسالة " والسم .CmdClear
• من نافذة الصفات نغير نوع الخط وحجمه )الصفة (Fontللكائنات
الثلثة.
الشفرة :نحتاج شفرة لزري الوامر لحدث النقر وكالتي
القيمة المعطاة لها في الشفرة فهو يعتبر المتغير من نوع Integerأذا أعطينا له
القيمة 12ويعتبره من نوع Stringاذا اعطينا له القيمة " "Nazarوهكذا.
مـلحظـة :يسمح الفيجول بيسك باستخدام المعطيات من دون تعريفها وتحديد
أنواعها ولكن ل ينصح المبرمجون بذلك لن تعريف المعطيات وتحديد أنواعها
يسهل عملية متابعة الخطاء )التي تحدث أثناء التنفيذ( وتصحيحها ولجعل الفيجول
بيسك ل يسمح بأستخدام المعطيات أل بعد تعريفها فاننا نكتب اليعاز Option
Explicitداخل شفرة المشروع ولكن خارج الحداث )يسمى بمقطع تعريف
معطيات المشروع( ولكي نجبر الفيجول بيسك على اضافة هذا اليعاز )في
المقطع المذكور( تلقائيا عند تكوين أي مشروع جديد نتبع الخطوات التالية :
نفتح قائمة .Tools •
الشكل )(6-3
الشكل )(7-3
الشكل )(8-3
مـلحظـة :يوفر الفيجول بيسك عدة دوال للتحويل بين أنواع المعطيات كما
موضح بالجدول).(2
جدول ) (2دوال التحويل بين المعطيات
تحويل المتغير الحالي الى الدالــة
منطقـي CBooll
تـاريـخ CDate
عدد صحيح ذو مدى قليل CInt
عدد صحيح ذو مدى كبير CLng
عدد حقيقي ذو مدى قليل CSng
عدد حقيقي ذو مدى كبير CDbl
Variant CVar
3-3مستويات تعريف المعطيات Scope of Data
ويقصد بمستوى التعريف هو المكان )أو المدى( الذي يكون فيه المتغير )أو الثابت(
معرف ويمكن أستخدامه وتوجد ثلث مستويات لتعريف المعطيات.
• تعريف من مستوى الجراء أو الحدث ) (Procedure or Event Levelوتكون
المعطيات معروفة داخل الحدث فقط وتعرف بالمر .Dim
• تعريف من مستوى النموذج ووحدة الجراءات ) (Module Levelوتعرف
المعطيات بالمر ) Privateويمكن تعريفها بالمر (Dimفي مقطع التعريف
للوحدة أو النموذج )خارج الحداث( وتكون قيمها معروفة لكل أحداث النموذج
أو أجراءات الوحدة.
• تعريف من مستوى التطبيق ) (Application Levelوتكون المعطيات هنا عامة
ومعروفة لكل اجراءات التطبيق )ضمن النموذج ووحدة الجراءات( وتعرف هذه
الشكل )(9-3
المثال التي يوضح لنا مستويات التعريف للمعطيات.
مثـال ) : (2المطلوب تكوين مشروع يحتوي على ثلث نماذج ،الول للترحيب
بالمستخدم والطلب منه أن يضغط المفاتيح Ctrl+Alt+Homeسوية ،الثاني يعرض
أسم مصمم المشروع ويطلب أدخال كلمة السر الخاصة بتشغيل المشروع وعرض
بقية النماذج وبعد التأكد من صحة كلمة السر يتم عرض النموذج الثالث.
التصميم
النموذج الول :يضاف النموذج الول تلقائيا عند تكوين المشروع ،نضيف له ما
يلي
• دللة بالعنوان "مرحبا لتشغيل المشروع أضغط المفاتيح"
• دللة بالعنوان " ."Ctrl+Alt+Homeأنظر الشكل ).(10-3
النموذج الثاني :يضاف هذا النموذج من خلل النقر بالزراليمن على منطقة فارغة
في نافذة مستعرض المشروع واختيار Addثم Formحيث يظهر النموذج الثاني تحت
النموذج الول ،نضيف له دللتين وصندوقي نص )أجعل صفة PasswordCharلصندوق
النص الثاني مساوية لـ *( وزري أوامر كما في الشكل ).(11-3
النموذج الثالث :يضاف بنفس السلوب أعله ،أضف له صورة وزر اوامر لغلق أو
أنهاء المشروع ،الشكل )(12-3
وحدة الجراءات :تضاف بنفس السلوب أعله حيث تظهر تحت النماذج.
الشكل )(10-3
الشكل )(11-3
الشكل )(12-3
الشفرة :
فكرة المثال تتضمن أعطاء قيمة للمتغير DesignerNameفي حدث تابع للنموذج
الول وبما أننا نريد ظهور قيمة هذا المتغير في النموذج الثاني فأننا سنعرفه على أنه
Publicفي مقطع التعريف في وحدة الجراءات )أي نجعله من مستوى التطبيق( وفي
النموذج الثاني سنعطي قيمة للمتغير Passwordداخل أحد الحداث التابعة لهذا
النموذج ولكننا سنستخدم قيمة هذا المتغير داخل حدث أخر تابع لنفس النموذج ولهذا
سنعرفه على أنه Privateضمن مقطع التعريف لهذا النموذج خارج الحداث )أي نجعله
من مستوى النموذج( .أدناه شفرة وحدة الجراءات:
Public DesignerName As String
في شفرة النموذج الول أستخدمنا حدث KeyDownالذي يستخدم مع بعض تطبيقات
الويندوز للتأكد من ضغط المفاتيح Ctrl+Alt+Homeكما مبين أدناه:
Option Explicit
)Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer
If KeyCode = vbKeyHome Then
If Shift = 6 Then
"شهـد ريـاض " = DesignerName
Unload Me غلق النموذج الحالي'
FrmLogin.Show عرض النموذج الثاني '
End If
End If
End Sub
شفرة النموذج الثاني هي :
Private Password As String
)(Private Sub Form_Load حدث التحميل للنموذج الثاني'
Me.Show
: A2رقم أو رمز يؤدي الى أظهار علمة معينة حسب الجدول أدناه
العلمـة قيمة الرمز A2
X 16
? 32
! 48
i 64
: A3النص الذي يظهر في شريط عنوان صندوق الرسالة.
ملحظـات
• يعتبر وجود المتغير A1ضروري ،أما المتغيرين A2و A3فوجودهما أختياري
• يمكن أضافة رقم للمتغير A2وذلك لعرض أزرار على الصندوق تستخدم
لسترجاع قيمة من المستخدم وكما يلي :
الزرار التي تظهر على الصندوق الرقم المضاف
Ok 0
Ok / Cancel 1
Abort / Retry / Ignore 2
Yes / No / Cancel 3
Retry / Cancel 4
الشكل ) (13-3يمثل ناتج أستخدام العبارة التية :
)"R = MsgBox ("File Not Found",50,"Check Your FileName
الشكل )(13-3
هنا المتغير Rسوف يأخذ أحدى القيم ) vbAbortأو vbRetryأو (vbIgnoreحسب
أختيار المستخدم من الزرار المعروضة على صندوق الرسالة.
دالـة صندوق الدخال InputBox
تستخدم لدخال القيم الرقمية أو الرمزية للمعطيات وصيغتها :
)InputBox (B1, B2, B4
: B1النص الذي في وسط صندوق الدخال.
: B2النص الذي يظهر في شريط العنوان ) هذا المتغير أختياري (
: B3القيمة الفتراضية للمدخل والتي تظهر في مستطيل داخل الصندوق )هذا
المتغير أيضا أختياري(.
ويحتوي صندوق الدخال على زري Okو ، Cancelالشكل ) (14-3يظهر عند تنفيذ
العبارة التية:
الشكل )(14-3
Var1 = Value
وكمثال عليه
4
Dim name As String , grade as Single -
”محمد عامر ”= name 2
عملية السنادGrade = 68.5
Else
Y=X^2
End If
MsgBox " Y = " & Y
وفي هذا النوع يمكن أن تمتد الشروط الى أكثر من ثلثة وبالتالي نستخدم أكثر
من عبارة Else IFوكذلك يمكن أن ل تنتهي بعبارة Elseكما مبين في المثال التي:
IF Deg >= 90 Then
"Res = "Excellent
Else IF D < 90 and D > = 80 Then
"Res = "Very Good
Else IF D < 80 and D >= 70 Then
"Res = "Good
Else IF D < 70 and D >= 60 Then
"Res = "Medium
End If
MsgBox " Result = " & Res
مثـال ) : (3صمم مشروع لحل معادلة الدستور وأطبع النتائج أخذا بنظر العتبار كل
الحتمالت؟
التصميم
نكون مشروع جديد ونصمم النموذج كما في الشكل ) (15-3حيث نضيف ثلث
أزرار أوامر وصندوق للصورة الثابتة Imageفيه صورة تمثل معادلة الدستور والتي تم
تصميمها في تطبيق Wordوعمل مونتاج لها في برنامج Paintوخزنها كصورة بالمتداد
.JPG
الشكل )(15-3
الشفرة :
من خلل حدث النقر لزرC وB وA في هذا المثال نحتاج الى شفرة لدخال قيم
:الوامر الول كما موضح
Option Explicit
Private A, B, C As Integer
Private Sub CmdInput_Click()
A = InputBox("Enter Value of A")
B = InputBox("Enter Value of B")
C = InputBox("Enter Value of C")
End Sub
أما شفرة زر حساب جذور المعادلة فهي تشمل التأكد من قيم المدخلت ثم
حساب قيم جذور المعادلة والحتمالت هي وجود جذر واحد أو جذرين أو عدم وجود
.أي جذر للمعادلة
Private Sub CmdCompute_Click()
Dim Msg, D, X, X1, X2
If A = 0 And B = 0 And C = 0 Then Exit Sub
If A = 0 Then Exit Sub
D=B^2-4*A*C
If D = 0 Then
X = -B / (2 * A)
Msg = "One Root =" & X
ElseIf D > 0 Then
X1 = (-B - D ^ 0.5) / (2 * A)
X2 = (-B + D ^ 0.5) / (2 * A)
Msg = "Two Roots, First =" & X1 & " Second =" & X2
Else
Msg = "Imaginary Roots"
End If
MsgBox Msg
End Sub
وأخيرا شفرة زر أوامر أنهاء المشروع
Private Sub CmdExit_Click()
End
End Sub
اليعاز الشرطي المباشر4-2-3
:وصيغة هذا النوع هي كالتي
94 d_pro2001@yahoo.com 07705853496
هاني عبد الحسين هادي
Case Is 20 To 30
Statements
End Select
في البداية نختار متغير كأساس للمقارنة )المتغير Aفي المثال اعله( ونضعه
بعد عبارة Select Caseحيث يأخذ الرمز Caseقيمة ذلك المتغير ثم نقوم بمقارنة
الرمز Caseمع قيم معلومة ونحدد الفعال التي ستنفذ عند تحقق شروط المقارنة.
ويمكن أستخدام رموز المقارنة )أكبر وأصغر( وكذلك أستخدام مدى من القيم )كما
في .(To 30 20ويجب النتباه عند العتماد على متغير رمزي في المقارنة لن
عبارة Select Caseتفرق بين الحروف الصغيرة والكبيرة )الحرف Cل يساوي
الحرف (cوللسيطرة على هذه المشكلة يوفر الفيجول بيسك دالتين هما LCase
)للتحويل الى الحروف الصغيرة( و ) UCaseللتحويل الى الحروف الكبيرة( وينصح
بأستخدام أحداهما عند المقارنة .كذلك يجب النتباه للفراغات التي قد تضاف
بالخطأ )القيمة NorthSchoolل تساوي (North Schoolوينصح هنا بأستخدام الدالة
Trimعند المقارنة لنها تلغي الفراغات فتصبح القيمة NorthSchoolمساوية لـ
(Trim(North School
4-5الحلقات التكرارية
تستخدم الحلقات التكرارية لتنفيذ مجموعة من العبارات عدة مرات ويوفر
الفيجول بيسك عدة أنواع من هذه الحلقات كما موضح أدناه.
4-5-1إيعاز For – Next
وهي أكثر أنواع الحلقات أستخداما خصوصا أذا علمنا عدد مرات التكرار وتأخذ
الصيغة التية :
For Counter = StartValue To EndValue Step M
Statements
Next Counter
: Counterهو عداد الحلقة ويكون متغير رقمي )صحيح أو حقيقي( ويمكن أستخدام
حرف واحد أو حرفين أو عدة حروف )يفضل حرف واحد مثل Iأو (J
: StartValueالقيمة البتدائية للعداد.
: EndValueالقيمة النهائية للعداد.
: Mمقدار التغير في قيمة العداد ويمكن أن يكون سالب ،وعند عدم ذكر عبارة
Stepوقيمة Mفأن الفيجول بيسك يفترض مقدار التغير يساوي واحد.
ملحظـات
• يمكن أنهاء الحلقة بعبارة Nextبدون ذكر رمز العداد.
• يمكن الخروج من الحلقة بعبارة GOTOأو .Exit For
• ل يمكن الدخول للحلقة أل من خلل عبارة .For
• ل يجوز تغيير قيمة العداد داخل الحلقة.
ElseIf S = 1 Then
PicView.Picture = LoadPicture("D:\Pictures\Iraq.jpg")
ElseIf S = 2 Then
PicView.Picture = LoadPicture("D:\Pictures\Jordan.jpg")
ElseIf S = 3 Then
PicView.Picture = LoadPicture("D:\Pictures\Labanon.jpg")
ElseIf S = 4 Then
PicView.Picture = LoadPicture("D:\Pictures\Moroco.jpg")
ElseIf S = 5 Then
PicView.Picture = LoadPicture("D:\Pictures\Kuwait.jpg")
End If
End Sub
Private Sub CmdInfo_Click()
Select Case S
Case Is = 0
MsgBox " العاصمة هي القاهرة، "شمال أفريقيا
Case Is = 1
MsgBox " العاصمة هي بغداد، " جنوب تركيا
Case Is = 2
MsgBox " العاصمة هي عمان، " غرب العراق
Case Is = 3
MsgBox " العاصمة هي بيروت، " غرب سوريا
Case Is = 4
MsgBox " العاصمة هي الدار البيضاء، " شمال أفريقيا وغرب تونس
Case Is = 5
MsgBox " العاصمة هي الكويت، " جنوب العراق
End Select
End Sub
98 d_pro2001@yahoo.com 07705853496
هاني عبد الحسين هادي
الشكل )(16-3
التنفيذ :
نضعط F5لتنفيذ المشروع ومن القائمة المنسدلة نختار أسم الدولة وعندئذ تظهر
خارطة وعلم تلك الدولة في صندوق الصورة وبالضغط على زر الوامر الذي في
العلى نعرض موقع وأسم عاصمة تلك الدولة ،الشكل ) (17-3يرينا عملية التنفيذ
عند أختيار جمهورية العراق.
الشكل )(17-3
شكل )(18-3
قبل الحديث عن الدوات وصفاتها وطرقها وأحداثها ،ل بد لنا من شرح هذه
المفاهيم.
الصفات Properties
هي مواصفات الكائنات والتي يتم تحديدها )بعد تكوين الكائن( أما بأختيارها
من القوائم المتوفرة في نافذة الصفات أثناء فترة التصميم أو بأدخال قيمها
داخل الشفرة فلو تكلمنا مثل عن صناديق النص فمن صفاتها هي حجم الصندوق
وقيمة النص ولونه ونوع الخط وغيرها .أدناه مثال على كيفية أدخال قيمة النص
داخل الشفرة :
"Text1.text = "Good Morning
حيث Text1هو أسم الكائن )صندوق نص( و textهي أحدى صفات صندوق
النص وتمثل قيمة النص و Good Morningهي القيمة التي ستظهر داخل صندوق
النص .نستنتج من المثال أعله بأن الصفة تسبق بأسم الكائن وتعقبها علمة
المساواة ثم قيمة الصفة.
الطرق Methods
هي الفعال التي تقوم بها الكائنات والتي تتحقق عند تنفيذ الشفرة وهي
تشبه الصفات حيث تسبق بأسم الكائن ولكنها ل تأخذ قيم ولهذا ل توجد علمة
مساواة بعدها .أدناه مثال على أستخدام الطرق :
Form1.cls
حيث Form1هو أسم الكائن )النموذج( و clsهي أحدى طرق النموذج
وتستخدم لمسح الكائنات المرسومة عليه وهي أختصار لـ .Clear Screenومن
الجدير بالذكر فأن الطرق أقل أستخداما مقارنة بالصفات والحداث.
الحداث Events
هي الفعال الخارجية التي تطبق على الكائنات والتي تنتج عنها ردود أفعال
وهي ايضا تتحقق عند تنفيذ الشفرة .عند كتابة أسم الكائن )في الشفرة( متبوع
بالنقطة تظهر قائمة بأسماء الحداث )وكذلك الصفات والطرق( المتوفرة لهذا
الكائن وأكثر الحداث أستخداما هي عملية النقر ) (Clickبالماوس .فمثل عند
النقر بالماوس على كائن زر الوامر )هذا هو الفعل( يمسح النص الموجود داخل
صندوق النص )هذا هو رد الفعل( .السطر التالية توضح ذلك:
) (Private Sub Command1_Click
"" = Text1.text
End Sub
حيث Command1هو أسم كائن زر الوامر و الحدث الذي سيطبق عليه هو
النقر Clickوالذي سينتج عن عملية النقر هو أعطاء قيمة فارغة للصفة ) textأي
مسح محتويات صندوق النص( .بقية المصطلحات المذكورة أعله )مثل Private
و Subسنتعلمها لحقا(.
6-1النموذج Form
هو أهم الكائنات في الفيجول بيسك ويضاف للمشروع تلقائيا عند فتح
مشروع جديد )ولهذا فهو غير موجود في صندوق الكائنات( وكل الكائنات الخرى
تضاف للنموذج وتظهر فوقه وبمعنى أخر فهو وعاء لكل الكائنات
الصفات
الجدول ) (3يوضح أهم صفات النموذج والقيمة الفتراضية لها )القيمة
الولية للصفة( وكذلك شرح لكل صفة ،ونلحظ ان بعض الصفات ليس لها قيم
أفتراضية.
جدول ) (3أهم صفات النموذج
الوصف القيمـــة الصفــة
الفتراضية
لتحديد أسم النموذج في مرحلة التصميم Form1 Name
لضافة عنوان )نص( يظهر في شريط Form1 Caption
العنوان
لتحديد لون أرضية النموذج والقيمة &&H8000000F BackColor
الفتراضية تشير الى اللون الرصاصي
ويمكن تغيير هذا اللون من خلل النقر
على السهم الموجود على اليمين وأختيار
اللون من القائمة المنسدلة.
اضافة صورة كأرضية للنموذج )الصورة فارغة Picture
مخزونة في أحدى وحدات الخزن(
لجعل أتجاه الكتابة من اليمين الى False RightToLeft
اليسار وبما أن القيمة الفتراضية هي
Falseولهذا فأن أتجاه الكتابة سيكون من
اليسار الى اليمين ،يتم تحويل القيمة الى
في طريقة الـ Circleاللون يمثل لون الطار ولملىء الدائرة بلون فيجب
تغيير صفتين للنموذج هما FillStyleوتضبط على Solid-0و FillColorوتضبط على
اللون المطلوب
يمكننا أن نكتب الطريقة من دون نسبقها بأسم النموذج أو يمكن
الستعاضة عن أسم النموذج بكلمة .Me
ألحداث
للنموذج أحداث كثيرة وأغلبها مشتركة مع الكائنات الخرى والتي سيتم
شرحها لحقا عند التطرق لتلك الكائنات ومن أهم الحداث الخاصة بالنموذج هو
حدث Loadالذي ينفذ تلقائيا عند تحميل النموذج ويستفاد منه لتحديد قيم أولية
للمتغيرات أو توجيه التركيز لكائن معين وتستخدم عادة طريقة Showمع هذا
الحدث لن الحدث بحد ذاته ل يؤدي الى ظهور النموذج مما قد يتسبب بحدوث
خطأ عند أستخدام طرق الرسم داخل هذا الحدث.
Form1.Show
Cmd2.SetFocus
End Sub
شكل )(20-3
ملحظـة :يشترط في أستخدام الطريقة SetFocusأن يكون الكائن )زر الوامر(
ظاهر وفعال.
الحداث
الجدول ) (6يرينا أهم أحداث أزرار الوامر وأكثرها أستخداما هو حدث
النقر.
جدول )(6
الوصف الحدث
النقر المنفرد على زر الوامر Click
أمرار مؤشر الفأرة فوق زر الوامر MouseOver
أستلم التركيز )سواء بالنقر أو السهم أو مفتاح GotFocus
(Tab
فقدان التركيز )تحول التركيز الى كائن أخر( LostFocus
5-3الدللت Labels
يستخدم هذا الكائن لعرض نص للقراءة يوضع في صفة Captionول يمكن
تغيير هذا النص مباشرة بالنقر خلله )كما سيمر علينا في صناديق النص( وأنما يتم
التغيير في وقت التنفيذ داخل الشفرة ويستخدم هذا الكائن مع الكائنات الخرى
لتوضيح عمليات الدخال والختيارات وغيرها.
الصفات
الجدول ) (7يوضح بعض صفات الدللت.
جدول )(7
الوصف القيمـــة الصفــة
الفتراضية
الطرق
طرق ألدللت قليلة جدا وقليلة الستخدام مثل Dragو .Move
الحداث
الجدول ) (8يرينا بعض أحداث ألدللت وهي نادرة الستخدام في
التطبيقات.
جدول )(8
الوصف الحدث
النقر المزدوج على الدللة DblClick
سحب كائن أخر وأفلته فوق الدللة DragDrop
سحب كائن أخر وأمراره فوق الدللة DragOver
تغيير عنوان الدللة داخل الشفرة Change
5-4صندوق النص Text Box
يستخدم هذا الكائن لدخال البيانات الرقمية أو الحرفية في وقت التصميم
)من خلل صفة (Textأو في وقت التنفيذ وذلك بالنقر عليه والكتابة بداخله.
الصفات
الجدول ) (9يوضح بعض صفات صندوق النص.
جدول )(9
الوصف القيمـــة الصفــة
الفتراضية
الدللة(
لعرض أو أخفاء أشرطة التمرير None-0 ScrolBars
تحديد أعلى طول للنص وعند جعل الصفة 0 MaxLength
مساوية للصفر فأنه يعني ل حدود لطول النص
تستخدم كحماية أثناء التنفيذ فعند جعل القيمة فارغة PasswordChar
مساوية للنجمة )*( فأن النص يظهر عند التنفيذ
على شكل نجوم ولكن القيم الحقيقية للنص
تظهر في نافذتي الصفات والشفرة وتستخدم
هذه الصفة مع صفة MaxLengthلتحديد كلمة
سر تشغيل المشروع .ل تعمل هذه الصفة أذا
كانت صفة MultiLineتساوي .True
ملحظـة :هناك بعض الصفات تتوفر فقط في وقت التنفيذ )ل توجد في
صندوق الصفات( مثل:
: SelLengthتحديد أو أسترجاع عدد الحروف المختارة )تكون القيمة مساوية
للصفر عند عدم ألختيار(
: SelStartتحديد أو أسترجاع نقطة البداية للنص للمختار ويسترجع موقع
المؤشرعند عدم الختيار
: SelTextتحديد أو أسترجاع قيمة النص المختار وتكون القيمة ل شيء عند عدم
أختيار نص.
الطرق
طرق صناديق النص قليلة جدا وأهمها Setfocusوالتي تؤدي الى وضع المؤشر
داخل الصندوق
الحداث
أحداث صناديق النص تشبه أحداث الكائنات الخرى وأكثرها أستخداما هو
حدث Changeوالذي ينفذ في كل وقت يقوم غيه المستخدم بحشر أو أستبدال أو
حذف حرف في صندوق النص ويستخدم هذا الحدث )وكذلك الحدث (LostFocus
لرغام المستخدم على ادخال نص معين أو مليء صندوق النص قبل النتقال الى
نموذج أخر .المثال التالي يرينا أستخدام الحدث LostFocusمع الطريقة SetFocus
Text1.SetFocus
End If
End Sub
الحدث أعله يجبر المؤشر على البقاء داخل صندوق النص أذا كان الصندوق فارغ.
الدالة Trimتلغي وجود الفراغات.
مثـــال ) : (5صمم الشكل ) (21-3وأجعل أدخال السم ضروري قبل نقر زر
التالي.
شكل )(21-3
التصميم :بعد إنشاء مشروع جديد نضيف أدوات التحكم )الكائنات( التالية
للنموذج :
• صندوق نص بأسم .TxtName
• زري أوامر بالسماء CmdNextو CmdEndومن نافذة الصفات نجعل زر
الوامر CmdNextغير فعال.
• صندوق دللة Label1وضبط عنوانه Captionفي نافذة الصفات بالمحتوى "Enter Your
"Name below
الشفرة :سوف نكتب شفرة لصندوق النص والخرى لزر الوامر CmdEnd
End
End Sub
cmdnext.Enabled = True
Else
cmdnext.Enabled = False
"" = TxtName
End If
End Sub
الشكل )(22-3
التصميم :بعد إنشاء مشروع جديد نضيف الكائنات التالية للنموذج :
• صندوق نص بأسم TxtTitleوكتابة نص بداخله ونوع الخط و MS Sans
Seirf
• اطار لللوان واطار لحجم الخط واطار لنمط الخط.
11 d_pro2001@yahoo.com 07705853496
4
هاني عبد الحسين هادي
TxtTitle.ForeColor = vbGreen
End Sub
)(Private Sub OptRed_Click
TxtTitle.ForeColor = vbRed
End Sub
)(Private Sub OptYellow_Click
TxtTitle.ForeColor = vbYellow
End Sub
ملحظـة :يمكن للطالب أن يضيف صناديق التحقق من دون أن يضعها داخل اطار
وقد أضيف الطار في المثال لغراض تنسيقية فقط.
الشكل )(23-3
التصميم :نكون مشروع جديد ونضيف الكائنات التالية للنموذج :
• صندوق قائمة بأسم lstFirstونغير حجمه ونحركه بحيث يملىء الجزء اليمن
من النموذج .ندخل العناصر التالية عموديا في صفة List
)(Ahmed, Ali, Huda, Zainab, Gaith, Salem, Noor, Kamal
• صندوق قائمة بأسم lstSecondونترك صفة Listفارغة.
• دللتين ،أحداهما بعنوان " "List Box 1والخرى بعنوان "."List Box 2
• زر الغلق.
الشفرة :أدناه شفرة النقر المزدوج لصناديق القائمة
)(Private Sub lstFirst_DblClick
أضافة العنصرالمختار للقائمة الثانية lstSecond.AddItem lstFirst.Text
حذف العنصر المنقول من القائمة الولى lstFirst.RemoveItem lstFirst.ListIndex
End Sub
مثــال ) :(8سوف نقوم بحل المثال السابق ولكن بأستخدام الحدث
MouseDownمع مفتاح Shiftلنقل السم أو المفتاح Ctrlلستنساخ السم.
الشفرة :في نافذة الشغرة نضيف الحدث المطلوب للقائمة الولى ونكتب
لليعازات كما يلي:
Private Sub lstFirst_MouseDown(Button As Integer, Shift As Integer, X As
)Single, Y As Single
If Shift = 1 Then
lstSecond.AddItem lstFirst.Text
lstFirst.RemoveItem lstFirst.ListIndex
ElseIf Shift = 2 Then
lstSecond.AddItem lstFirst.Text
End If
End Sub
ملحـظة :الحدث MouseDownيأخذ أربعة متغيرات هي
• المتغير Buttonوقيمته 1للزر اليسر و 2للزر اليمن و 3للزر
الوسط
• المتغير Shiftوقيمته 1لمفتاح Shiftو 2لمفتاح Ctrlو 3لمفتاح Alt
• المتغيرين Xو Yيمثلن أحداثيات مؤشر الفأرة عند تطبيق الحدث.
5-9الصندوق المركب )أو القائمة المنسدلة( Combo Box
يجمع هذه الكائن ما بين مزايا صندوق النص وصندوق القائمة )ولهذا سمي
بالمركب( فهو يستخدم لعرض قائمة ويسمح لنا مباشرة )من خلل عملية النقر(
بأدخال أو تغيير أي عنصر .كما يتيح امكانية تغيير قيمة الصفة Textأثناء فترة
التنفيذ )صندوق القائمة يتيح فقط امكانية استرجاع قيمة الصفة .(Text
الصفات
تتشابه صفات هذا الكائن مع صفات صندوق القائمة مثل Listو ListCountو
ListIndexو Sortedوغيرها وتختفي بعض الصفات مثل Columnsو Selectedو
MultiSelectوأهم صفة يتميز بها هذا الكائن هي Styleوتأخذ ثلث قيم:
: DropDownCombo-0هذه القيمة تجعل الصندوق المركب يشبه صندوق
النص وعلى يمينه سهم نحو السفل لسرد عناصر الصندوق وعند أختيار أي
عنصر فأنه يظهر في العلى حيث يمكن تغييره مباشرة بالنقر داخله.
: SimpleCombo-1هنا يختفي سهم السرد لن عناصر الصندوق تكون ظاهرة
ويمكن الختيار والتغيير ويجب تكبير حجم الصندوق لظهار جميع العناصر.
: DropDownList-2يشبه النمط الول من ناحية الشكل )صندوق نص وسهم
سرد( ولكنه ل يسمح بالتغيير المباشر ،أي أن صندوق النص هنا يتصرف كأنه
صندوق قائمة ويستخدم هذا النمط بدل صندوق القائمة عندما يكون النموذج
مزدحم بالكائنات.
أحداث وطرق الصندوق المركب
لهذا الكائن أحداث كثيرة ولكن الكثر أستخداما هي :
: DropDownوهو يعمل مع القيمتين الولى والثالثة لصفة Style
: Changeيعمل مع القيمة الولى والقيمة الثانية لصفة Style
: DblClickيعمل فقط مع القيمة الولى لصفة Style
أما الطرق فهي كتلك المتوفرة لصندوق القائمة وهي AddItemو Clearو
.RemoveItem
مثــال) : (9صمم النموذج في الشكل ) (24-3وأجعل المشروع يضيف )أثناء
التحميل( عشرة أسماء حيوانات للصندوق المركب وكذلك يقوم باضافة أي أسم
من أسماء قائمة الصندوق المركب الى صندوق القائمة عند نقره نقرة مزدوجة
أو نقره نقرة منفردة ثم نقر زر "أضف الى".
الشكل )(24-3
التصميم :نكون مشروع جديد ونجعل عنوان النموذج " مثال عن الصندوق
المركب" ونعطي قيمة Trueلصفة RightToLeftونضيف الكائنات التية:
• صندوق مركب بأسم CboAnimalsونجعل صفة Styleله مساوية لـ -1
SimpleComboونحول صفة RightToLeftالى True
• صندوق قائمة بأسم lstAnimalsونترك صفة Listفارغة ونحول صفة RightToLeft
الى True
• دللتين ،أحداهما بعنوان "صندوق مركب" والخرى بعنوان "صندوق قائمة".
• زر أوامر لضافة العنصر المختار من الصندوق المركب الى صندوق القائمة
• زر الغلق.
الشفرة :
• ننقر النموذج نقرة مزدوجة وندخل شفرة حدث التحميل للنموذج
)(Private Sub Form_Load
"حصان" CboAnimals.AddItem
"ثعلب" CboAnimals.AddItem
"قطة" CboAnimals.AddItem
"أسد" CboAnimals.AddItem
"فهد" CboAnimals.AddItem
"ذئب" CboAnimals.AddItem
"كلب" CboAnimals.AddItem
"خروف" CboAnimals.AddItem
"غزال" CboAnimals.AddItem
End Sub
نكتب شفرة زر الضافة •
lstAnimals.AddItem CboAnimals.Text
End Sub
نكتب شفرة النقر المزدوج للصندوق المركب •
)(Private Sub CboAnimals_DblClick
cmdadd_Click
End Sub
نكتب شفرة زر الغلق •
)(Private Sub cmdexit_Click
End
End Sub
مـلحظـة :يمكن أستبدال عبارة cmdAdd_Clickفي حدث النقر المزدوج
للصندوق المركب بالعبارة التالية:
cmdAdd.Value = True
حيث تؤدي هذه العبارة الى تفعيل حدث النقر لزر الوامر .cmdAdd
5-10أشرطة التمرير الفقية والعمودية Horizontal and
Vertical Scroll Bars
تضاف هذه الكائنات تلقائيا مع بعض الكائنات الخرى مثل صندوق القائمة
والصندوق المركب ،كما يمكننا أضافة هذه الشرطة لستخدامات أخرى .ويوجد
بداخل الشرطة المزلق ) (Thumbوالذي يتحرك بعدة عمليات هي :عملية
السحب ،نقر السهمين الموجودين في نهاية الشريط أو نقر شريط التمرير )قبل
أو بعد المزلق( .وعند تغير موقع المزلق تتغير قيمة الصفة Value
الصفات
الجدول ) (12-3يوضح أهم صفات صندوق القائمة:
جدول )(12-3
الوصف القيمـــة الصفــة
الفتراضي
ة
القيمة الدنيا للتمرير ويكون موقع القيمة الدنيا 0 Min
في العلى بالنسبة لشريط التمرير العمودي
ويمكن أن تأخذ هذه الصفة قيمة سالبة
القيمة العليا للتمرير ويمكن أن تأخذ هذه الصفة 32767 Max
قيمة سالبة.
القيمة الحالية للتمرير ويمكن تحديدها أثناء 0 Value
التصميم أو التنفيذ.
مقدار التغير في قيمة الصفة Valueعند نقر 1 LargeChange
الشريط.
مقدار التغير في قيمة الصفة Valueعند نقر 1 SmallChange
السهم الموجودة في نهاية الشريط.
الشكل )(25-3
التصميم :نكون مشروع جديد ونجعل عنوان النموذج ""Example on Scroll Bars
ونضيف الكائنات التالية:
• صندوق نص بأسم txtMoveوأجعل فيمة الصفة Textمساوية لـ .50
• شريط تمرير أفقي بأسم HScroll1بالصفات Value = 50و Min = 0و = Max
.100
• زر أوامر الغلق.
الشفرة :نكتب شفرة أحداث التغيير والتمرير والغلق
)(Private Sub HScroll1_Change
)txtMove = Str (HScroll1.Value
End Sub
)(Private Sub HScroll1_Scroll
HScroll1_Change
End Sub
)(Private Sub cmdExit_Click
End
End Sub
ملحظات :
• لكل كائن صفة أفتراضية خاصة به يمكننا عدم كتابتها بعد كتابة أسم الكائن
داخل الشفرة مثل صفة Textلصندوق النص ولهذا لم نكتبها داخل حدث
التغيير وكذلك يمكننا حذف صفة Valueمن حدث التغييرلنها الصفة
الفتراضية لشريط التمرير.
• أستخدمنا دالة ) Strمخنصر (Stringلتحويل المتغير الرقمي الى متغير رمزي
ويمكننا حذفها من الشفرة دون أن يؤثر ذلك على أداء المشروع ولكننا
أضفناها للتعرف عليها أول ،كما أن المصمم قد يضطر الى أستخدامها اذا أراد
جمع ما موجود في صندوق النص مع قيمة رمزية.
مثـال) : (11أستخدم شريط تمرير عمودي )الشكل (26-3وأرسم دائرة بلون
أحمر يعتمد قطرها على قيمة الصفة Valueوالتي تتغير بتغير موقع المزلق.
)الشكل (26-3
التصميم :نكون مشروع جديد ونجعل عنوان النموذج كما مبين بالشكل ونضيف ما
يلي:
• شريط تمرير عمودي بأسم vsbDrawمع بقاء صفاته كما هي.
• دللتين لعرض قيمتي الصفتين Minو .Max
الشفرة :نكتب شفرة حدث تحميل النموذج وحدثي التغيير والتمرير لشريط
التمرير.
)(Private Sub Form_Load
vsbDraw.Min = 0: vsbDraw.Max = 1000: vsbDraw.SmallChange = 25
End Sub
)(Private Sub vsbDraw_Change
Form1.Cls
Circle (vsbDraw.Height, vsbDraw.Height / 1.5), vsbDraw.Value, vbRed
End Sub
)(Private Sub vsbDraw_Scroll
vsbDraw_Change
End Sub
ملحظات :
• تم تحديد بعض صفات شريط التمرير في حدث التحميل للنموذج.
• يمكن أستخدام أكثر من عبارة واحدة على نفس السطر مع وضع فاصلة بينها
) (:كما في حدث التحميل للنموذج.
5-11ألتوقيت Timer
يستخدم كائن التوقيت )أو المؤقتة( للسيطرة على وقت تنفيذ مجموعة من
الوامر ويكون ظاهرا )على شكل ساعة( على النموذج خلل فترة التصميم ولكنه
يختفي هند التنفيذ ولهذا ل يهم موقعه أثناء التصميم .هذا الكائن يتحقق من وقت
الحاسوب ويعنل بموجبه.
الصفات
لهذا الكائن صفات قليلة وأهمها:
: Intervalنحدد فيها الفترة الزمنية لتكرار الحدث المرافق لكائن التوقيت وهو
حدث ) Timerنفس أسم الكائن( ،وتقاس الفترة الزمنية بوحدات مل
ثانية .عند ادخال قيمة صفرية لهذه الصفة فأن الحدث ل ينفذ أما مدى
هذه الصفة فهو من صفر الى 65535مل ثانية )دقيقة واحدة تقريبا(
: Enabledلتفعيل الكائن والقيمة الفتراضية لها Trueوليقاف تنفيذ وظيفة الكائن
نحولها الى .False
أحداث وطرق كائن التوقيت
ليس لهذا الكائن أية طرق وله حدث واحد فقط هو Timerوالذي يتكرر تنفيذه
اعتمادا على قيمة الصفة .Interval
مثـال) : (12أستخدم كائن التوقيت لتبديل لون أرضية الدللة في الشكل )-3
(27من الحمر الى الزرق وبالعكس كل ثانية.
الشكل )(27-3
التصميم :نكون مشروع حديد ونجعل عنوان النموذج كما مبين في الشكل
ونضيف عليه ما يلي:
الحداث والطرق
لمستعرض الملفات عدة أحداث أهمها :
: Clickيستخدم حدث النقر لتنفيذ أية عمليات على الملفات )مثل الفتح أو
الغلق أو الخزن( أعتمادا على قيمة الصفة .Path
: DblClickيوضع داخل هذا الحدث )كما مر سابقا( حدث النقر المنفرد والذي
ينفذ على أحد أزرار الوامر.
: PathChangeينفذ هذا الحدث عند تغيير قيمة الصفة .Path
: PatternChangeينفذ هذا الحدث عند تغير قيمة الصفة Patternوالتي يمكن أن
تتغير بصورة مباشرة داخل الشفرة )مثل (FileCar,Pattern = *.txtأو ندخل قيمتها
داخل صندوق نص ثم نجعل الصفة مساوية لهذا النص )مثل = FileCar.Pattern
.(txt.text
أما طرق الكائن فهي قليلة ونادرة الستخدام مثل Refreshو .Move
5-15صندوق الصورة Picture Box
لهذا الكائن وظائف متعددة منها امكانيته لعرض الصور )المخزونة في ملفات(
ذات المتدادات bmp ، jpg ، gif ، icoوغيرها ويستخدم أيضا لظهار النصوص
ونواتج طرق الرسم )الخطوط والدوائر( .وبصورة عامة فأن صندوق الصورة
يتصرف كوعاء ) (Containerحيث يمكن وضع الكائنات بداخله )مثل أزرار الوامر(
فيتصرف كنموذج صغير داخل النموذج الكبير.
الصفات
لهذا الكائن العديد من الصفات ،بعض منها مشتركة مع الكائنات الخرى والجدول
التي يوضح أهم هذه الصفات:
جدول )(14-3
(28-3) الشكل
نكون مشروع جديد ونحدد عنوان النموذج ونضيف الكائنات الربعة: التصميم
لمستعرضPattern ونغير حجمها لتصبح كما مبين في الشكل ونجعل صفة
. في حدث التحميل للنموذجjpg.* الملفات مساوية لـ
. ندخل الشفرات المطلوبة كما مبين أدناه: الشفرة
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
ccName = File1.Path & "\" & File1.FileName
Pic1.Picture = LoadPicture(ccName)
End Sub
Private Sub Form_Load()
File1.Pattern = "*.jpg"
End Sub
13 d_pro2001@yahoo.com 07705853496
2
هاني عبد الحسين هادي
التنفيذ :بعد تنفيذ المشروع نختار وحدة الخزن )نقرة واحدة( فتعرض مجلدات
تلك الوحدة في قائمة المجلدات ،نختار المجلد )بنقرتين( فتعرض ملفات ذلك
المجلد )من نوع (jpgفي مستعرض الملفات ،ثم نختار أي ملف )نقرة واحدة(
فيتم عرض الصورة المخزونة داخل الملفا في صندوق الصورة.
مـلحظـة :أن أضافة الرمز "\" في حدث النقر يعتبر ضروري اذا كان ملف
الصورة داخل مجلد ولكنه غير ضروري ويؤدي الى ظهور عبارة خظأ عند وجود
الملف على جذر وحدة الخزن.
مثـال) : (14أستخدم الطريقة PaintPictureفي أستنساخ وقلب الصورة حسب
طلب المستخدم أصمم الشكل ).(28-3
الشكل ).(28-3
التصميم :نكون مشروع جديد ونحدد عنوان النموذج ونضيف الكائنات التية:
• صندوقي صورقي بالسماء PicSrcو .PicTar
• أربعة أزرار أوامر بالسماء CmdCopyو CmdHorو CmdVerو
CmdHorVerونحدد عناوينها كما موضح على الشكل.
• دللة باسم Label1وموقعها بين الصورتين.
الشفرة :ندخل شفرات أزرار الوامر الربعة وكما يلي:
)(Private Sub CmdCopy_Click
13 d_pro2001@yahoo.com 07705853496
4
هاني عبد الحسين هادي
الصفات
لهذا الكائن صفات قليلة مقارنة بصندوق الصورة ومن الصفات المتشابهة بينهما
هي Picture ، DragIcon ، Visible :و DragModeوغيرها وبفتقر هذا الكائن لبعض
الصفات مثل Imageو AutoRedrawوكذلك AutoSizeوأهم صفة تميز هذا الكائن
عن غيره هي صفة ) Stretchتأخذ قيمة Falseأو (Trueوالتي تؤدي الى تصغير أو
تكبير الصورة لكي تتلئم مع حجم الكائن .يتذكر الطلبة بأن صفة AutoSizeلصندوق
الصورة تؤدي الى تصغير أو تكبير حجم الصندوق ليتلئم مع حجم الصورة وليس
بالعكس كما في صفة .Stretch
الحداث والطرق
للصورة الثابتة عدة أحداث وطرق ومن أبرز أحداثه هي Click ، DblClick ، :
DragDropو MouseDownوالخير ينفذ عند نقر الفأرة سواء بالزر اليسر أو اليمن.
أما طرقه فهي قليلة مثل طريقتي السحب Dragوالحركة .Move
مثـال) : (15المطلوب تصميم الشكل ) (29-3والذي يحتوي على ثلث كائنات
من نوع الصورة الثابتة ويسمح المشروع بتبادل مواقع الصور من خلل عملية
السحب.
الشكل )(29-3
التصميم :نكون مشروع جديد وندخل عنوان النموذج ونضيف له ثلث كائنات
من نوع الصور الثابتة ونحدد لها الصفات التية:
• في صفة Pictureنضيف صورة لكل منها ويمكن للطالب أن يختار أية
صورة مخزونة على وحدات الخزن في الحاسوب.
• نجعل صفة DragModeلكل منها مساوية لـ .Manual-0
• في صفة DragIconنختار ملف صورة بالمتداد icoيمثل شكل المؤشر
عند عملية السحب
الشفرة :نكتب شفرات الكائنات وكما يلي
)Private Sub Img1_DragDrop(Source As Control, X As Single, Y As Single
Img4.Picture = Img1.Picture
Img1.Picture = Source.Picture
Source.Picture = Img4.Picture
End Sub
Private Sub Img1_MouseDown(Button As Integer, Shift As Integer, X As Single,
Y As Single)
Img1.Drag 1
End Sub
Private Sub Img2_DragDrop(Source As Control, X As Single, Y As Single)
Img4.Picture = Img2.Picture
Img2.Picture = Source.Picture
Source.Picture = Img4.Picture
End Sub
Private Sub Img2_MouseDown(Button As Integer, Shift As Integer, X As Single,
Y As Single)
Img2.Drag 1
End Sub
Private Sub Img3_DragDrop(Source As Control, X As Single, Y As Single)
Img4.Picture = Img3.Picture
Img3.Picture = Source.Picture
Source.Picture = Img4.Picture
End Sub
Private Sub Img3_MouseDown(Button As Integer, Shift As Integer, X As Single,
Y As Single)
Img3.Drag 1
End Sub
لبدء التنفيذ ونقوم بسحب أية صورة من كائن الىF5 نضغط المفتاح: التنفيذ
أخرى لستبدال الصور بين الكائنات ونلحظ تغير شكل المؤشر أثناء عملية
.السحب
13 d_pro2001@yahoo.com 07705853496
6
هاني عبد الحسين هادي
ملحظـات:
• أن مفتاح العمل لها المشروع هي قيمة الصفة DragModeولقد جعلناها
عن قصد في مرحلة التصميم غير تلقائية لنتعلم أستخدام طريقة Drag
والتي توضع داخل الحدث MouseDownويجب وضع الرقم 1بعد الطريقة
لتحويل عملية السحب الى تلقائية )أي السماح بعملية السحب(.
• أذا جعلنا صفة DragModeمساوية لـ Auomatic-1فأننا سوف لن نحتاج
لحدث MouseDownللكائنات الثلثة.
• يأخذ الحدث MouseDownثلث متغيرات هي:
: Button تكون قيمته 1عند أستخدام الزر اليسر و 2للزر
اليمن و 4للزر الوسط.
: Shift يأخذ هذا المتغير القيمة 1عند ضغط مفتاح Shiftوالقيمة
2عند ضغط مفتاح Ctrlوالقيمة 4عند ضغط مفتاح .Alt
أسئلة الفصل
سؤال : 1كون مشروع قياسي فيه صندوق مركب فارغ وزري خيارات ،عند أختيار
الزر الول يمليء الصندوق بأسماء دول من قارة أسيا وعند أخنيار الزر الثاني
يمليء بأسماء دول من قارة أفريقيا .أستخدم الحدث .DropDown
سؤال : 2صمم الشكل التي والذي يحتوي على ثلث أشرطة تمرير تمثل اللوان
)الحمر والخضر والزرق( وأجعل قيمة Minو Maxلهذه الشــرطة هــي 0و 255
وفي أعلى الشكل يوضع أطار وبداخله ثلث دللت لعرض قيم اللوان أما اللــوان
فتعرض داخل الطار ،أستخدم دالة .RGBيلحظ الطلبة أن قيم اللوان عنــد بــدء
التشغيل هي 255والتي تعطي اللون البيض.
سؤال : 6كون مشروع قياسي يحتوي على نموذج واحد فيه صندوقي قائمة وأملىء
الذي على اليسار بعناصر تمثل بعض مكونات الحاسوب كما موضح بالشكل أدناه ،
المشروع يسمح للمستخدم بنقل العنصر الى الصندوق الثاني عند النقر عليه مع
الضغط على مفتاح Shiftويسمح بأستنساخه عند النقر عليه والضغط على مفتاح
.Ctrl
سؤال : 7كون النموذج التي وفيه صندوق نص وثلث أزرار أحدهما لضافة رسالة
ترحيب والخر لضافة التاريخ )من خلل الدالة (Dateوالخير لمسح ما مكتوب داخل
الصندوق ،أجعل زر المسح غير فعال عندما يكون صندوق النص فارغ ويتحول الى
فعال عند أضافة الرسالة أو التاريخ.
سؤال : 8كون مشروع فيه نموذجين الول فيه صندوق نص وزري أوامر ،صندوق
النص لدخال أسمك وزر للغلق وزر للنتقال للنموذج الثاني )هذا الزر ل يكون فعال
أل بعد أدخال السم( والنموذج الثاني فيه صندوق نص لعرض رسالة ترحيب للسم
الذي أدخل في النموذج الول وزر للرجوع للنموذج الول.
سؤال : 9كون مشروع من نموذج واحد فيه زري أوامر أحدهما للغلق والخر لبدء
تشغيل المشروع والفكرة هي أدخال أسماء وأعمار عشرة طلب والتأكد من أدخال
متغير رمزي عند أدخال السم وكذلك التأكد من أدخال متغير رقمي عند أدخال العمر
)أي ل يسمح المشروع بأدخال رقم بدل السم أو أسم بدل العمر( وتتم طباعة
السماء والعمار على النموذج بعد أدخالها والتأكد من صحتها.
سؤال : 10صمم نموذج فيه كائنين هما التوقيت والصورة الثابتة ،أختر صورة
بالمتداد icoللصورة الثابتة وأستخدم كائن التوقيت لتحريك الصورة داخل النموذج.