مشاركة: تعلم فجول بيسك 6 بالتفصيل
الفصل الثاني : إنشاء النوافذ والنوافذ المتعددة
مقدمة :
سنتعلم في هذا الفصل كتابة برامج تعتمد على النوافذ المتعددة Multi Forms بالإضافة إلى كيفية إنشاء المتغيرات المختلفة والتعامل معها .
البرنامج MyMulti
الوظيفة
• عند نقر الزر About يظهر صندوق حوار About القياسي لإظهار معلومات حول البرنامج .
• عند نقر الزر SetData1 يظهر صندوق إدخال لإدخال جملة وبالموافقة تظهر داخل النافذة الرئيسية .
• عند نقر الزر SetData2 يظهر صندوق إدخال ندخل به جملة وبالموافقة يظهرها داخل النافذة الرئيسية وذلك باستخدام عدة طرق مختلفة لنقل الجملة من صناديق الإدخال إلى النافذة الرئيسية .
البرمجة المرئية للنافذة الرئيسية MyMulti
Object Property Settings Object Property Settings
Form Name FRMMyMulti CommandButton Name CBAbout-CBSetData1-CBSetData2-CBExit
BorderStyle Caption معلومات - بيانات 1 -
بيانات 2 - خروج
MoveAble Style 1
StartUpPosition Default T – F – F – F
Caption متعدد النوافذ Cancel F – F – F – T
Height Height
Left Left
Top Top
Width Width
كتابة الشفرة الخاصة بالنافذة الرئيسية MyMulti
كتابة الشفرة الخاصة بالنقر على زر خروج
Private Sub CBExit_Click()
End
End Sub
كتابة الشفرة الخاصة بالنقر على زر معلومات
Private Sub CBAbout_Click()
MsgBox “ مصمم هذا البرنامج هو المهندس / عادل عبده أمين عبدالماجد “ ,VBInformation,” معلومات عن البرنامج متعدد النوافذ ”
End Sub
تؤدي هذه الشفرة إلى ظهور صندوق رسائل من صناديق الحوار القياسية التي يقدمها لك النظام وتحوي 3 معاملات الأول هو رسالة للأعلان والتعريف بالشئ والثاني هي أيقونة جاهزة تعبر عن مضمون المعامل الأول والثالث يعبر عن عنوان صندوق الرسائل الجاهز .
كتابة الشفرة الخاصة بالنقر على زر بيانات 1
Private Sub CbSetData1_Click()
Dim TxtEntered
TxtEntered = InptBox (“ أكتب شيئا هنــا :“,” الحصول على عبارة من المستخدم “,” هذه عبارة مبدئية “
Print “ لقد كتبت : “+ TxtEntered
End Sub
تستخدم الشفرة السابقة طريقة مربعات الإدخال القياسية التي تقدمها اللغة للإستخدام .
فيتم تعريف متغير جديد بإستخدام الكمة المحجوزة Dim تستخدم لتخزين قيمة يستقبلها من صندوق الإدخال InputBox والتي تؤدي لظهور مربع حوار يتكون من 3 معاملات الأول هو رسالة تعبر عن المطلوب من المستخدم والثاني هو عنوان مربع الحوار والثالث هو كقيمة مبدئية . والآن فلنقوم بتصميم النوافذ التي تقوم بنفس العمل الأعمال السابقة
البرمجة المرئية للنافذة الفرعية معلومات
Object Property Settings Object Property Settings
Form Name FRMAbout CommandButton Name CBOK
BorderStyle Caption موافق
MoveAble Style 1
StartUpPosition Default T
Caption معلومات متعدد النوافذ Font
Height Height
Left Left
Top Top
Width Width
Label Name LBLMesAbout
Alignemt 2
Font
Caption مصمم هذا البرنامج مهندس / عادل عبده أمين
كتابة الشفرة الخاصة بالنقر على الزر About في نافذة البرنامج الرئيسية
Private Sub CBAbout_Click()
FrmAbout.Show 1
End Sub
نستبدل الشفرة التي قمنا بكتابتها في البداية بالشفرة السابقة التي تظهر النافذة الفرعية التي قمنا بتصميمها FRMAbout
كتابة الشفرة الخاصة بالنقر على الزر بيانات 2
Private Sub CBSetData2_Click()
FRMSetData2.Show 1
FrmMyMulti.CLS
Print “ لقد كتبت :” + FrmSetData2.TXBMes.Text
End Sub
تقوم الشفرة السابقة بإظهار النافذة الفرعية SetData2 ثم مسح أي جمل أو رسائل مطبوعة على النافذة الرئيسية باستخدام العبارة CLS ثم تقوم بطباعة العبارة التي أدخلها المستخدم في النافذة الفرعية SetData2 باستخدام صندوق النصوص TXBMes وذلك بالصيغة FRMSetData2.TXBMes.TEXT
كتابة الشفرة الخاصة بالنقر على الزر موافق في النافذة الفرعية معلومات
Private Sub CBOk_Click()
FrmAbout.Hide
End Sub
البرمجة المرئية للنافذة الفرعية SetData2
Object Property Settings Object Property Settings
Form Name FRMSetData2 CommandButton Name CBOK – CBCancel
BorderStyle Caption موافق – إلغاء
MoveAble Style 1
StartUpPosition Default T – F
Caption مدخل البيانات 2 Cancel F – T
Height Height
Left Left
Top Top
Width Width
TextBox Name TXBMsg
MultiLine T
Font
Height
Left
Top
Width
كتابة الشفرة الخاصة بالنافذة الفرعية SetData2
كتابة الشفرة الخاصة بالنقر على الزر موافق
Private Sub CBOk_Click()
Unload Me
End Sub
كتابة الشفرة الخاصة بالنقر على الزر إلغاء
Private Sub CBCancel_Click()
TXBMes.Text = “ “
FrmSetData2.Visiable = False
End Sub
ملاحظات
• هناك طريقتين لعرض أي نافذة على الشاشة فلا تختلف إحداهما عن الآخر في التأثير ، وهما :-
اسم النافذة.Show اسم النافذة.Visible = True
بينما توجد 3 طرق لآخفاء هذه النافذة من الشاشة وأيضا لا تختلف هذه الطرق عن بعضها في التأثير ، وهم :-
اسم النافذة.Hide اسم النافذة.visible = False Unload Me
فتعبر الكلمة المحجوزة Me عن العنصر Object أوالأداة والمقصود هنا هو النافذة Form .
• باستخدام الأمر Show يمكنك عرض النافذة أكثر من مرة في نفس الوقت ( أي يسمح بالتنقل إلى نوافذ أخر والتعامل معها أيضا وقد يتم عرض هذه النافذة مرات ومرات ) بهذا تشغل الذاكرة وهذا ما لايحمد عقباه . لذلك نستخدام الأمر Show بالصيغة التالية Show 1 فلا يسمح بالتعامل مع أي نافذة أخر بينما النافذة المعروضة تم عرضها بهذه الصيغة فينقل التحكم إليها حتى تنتهي من التعامل معها ويغلقها هنا فقط فيسمح بالتعامل مع النوافذ الأخرى .