
					مشاركة: تعلم فجول بيسك 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 فلا يسمح بالتعامل مع أي نافذة أخر بينما النافذة المعروضة تم عرضها بهذه الصيغة فينقل التحكم إليها حتى تنتهي من التعامل معها ويغلقها هنا فقط فيسمح بالتعامل مع النوافذ الأخرى .