Visual Basic (6)
|
محتويات الدرس السادس : v أهم خصائص النافذة v أهم أحداث النافذة v إظهار النوافذ وإخفائها
أهم الخصائص للنافذةاسم الخاصية : AutorRedraw متوفرة أثناء : التصميم والتنفيذ تحدد هذه الخاصية إذا كانت النافذة ستفقد محتوياتها عند إعادة رسمها أم لا . إذا وضعت أدوات مثل أدوات الخط أو الأشكال أو العنوان فإذا حدث مايستدعي إعادة رسم للنافذة ، كأن تغطيها نافذة أخرى ثم تنكشف . فإن "فيجول بيسيك" يقوم بإعادة رسمها دون تدخل منك . أما إذا كتبت أي شئ على النافذة باستخدام الأمر print أو رسمت أي شكل هندسي بإستخدام الأمر circle أو line ثم قام المستخدم بتصغير النافذة ثم تكبيرها فإن النافذة ستفقد محتوياتها وتظهر بدون الأشكال أو العبارات التي طبعتها ذلك أن الناتج من هذه الأوامر ليس ثابتاً . جرب ذلك : مثال v افتح مشروع جديد v انقر نقراً مزدوجاً فوق النافذة form1 لتفتح نافذة البرمجة الخاصة بها . v غير الحدث المعروض في النافذة إلى حدث النقر click v اكتب التعليمات التالية : sub form_click ( ) circle (2500,2000),1500 "هذه تجربة على الكتابة فوق النافذة " print end sub v شغل البرنامج بالضغط على F5 v انقر فوق النافذة سوف يقوم "فيجول بيسيك" بتنفيذ الأوامر التي وضعتها في
حدث النقر فيرسم دائرة ويطبع جملة . v صغر النافذة ثم كبرها ، ماذا تلاحظ ؟؟؟ ستجد أن النافذة فقدت محتوياتها . والحل هو أن تضع الأوامر في الحدث paint بدلاً من click مثال : sub form_paint ( ) circle (2500,2000),1500 "هذه تجربة على الكتابة فوق النافذة " print end sub v شغل البرنامج F5 v صغر النافذة وكبرها ، ستجد أن النافذة محتفظة بمحتوياتها حل أخر ( هو يمكن أن تغير خاصية النافذة form1 وتضع autodedraw قيمة true
شرح دراسة الخصائص للنافذة form1 في المحاضرة
إخفاء النافذةاستخدم امر hide لإخفاء النافذة مثال : form2.hide وهذا الامر يقوم بإخفاء form2
اظهار النافذةمثال : form2.show
وهذا الامر يقوم بإظهار form2 أوامر التعامل مع الملفات والأدلةv معرفة القرص والدليل الحالي إذا أردت معرفة القرص والدليل الحالي ، استخدم الأمر curdir$ مثال : label1.caption = curdir$
يعود هذا بالدليل الحالي بكاملة بما فيه القرص الحالي . لذلك يمكنك استخدام الأمر left$ لقراءة أول حرف فيه ومن ثم معرفة القرص الحالي ، مثل : mydrive$ = left$(curdir$, 1) فهنا المتغير mydrive يحتوي على القرص الحالي
معرفة الدليل الذي بدأ منه برنامجك مثال : a$ = app.path
نسخ ملف عندما ترغب في نسخ ملف ، استخدم الأمر filecopy وله الصيغة التالية "الهدف" ," المصدر" filecopy مثال : filecopy "c:\mypro\test.exe” , “c:\windows\test.exe” ومن الممكن تغيير اسم الملف عند النسخ مثال : filecopy "c:\mypro\test.exe” , “c:\windows\absoft.exe”
حذف ملفباستخدام امر kill مثال : kill "c:\mypro\test.exe”
يجب أن تتحلى بالحذر عند استخدام هذا الامر لإنه أيضا يستخدم خاصية * و ؟ كما تفعل في نظام دوس مثال : kill "*.tmp"
إعادة تسمية الملفات والأدلةفمثلاً من الممكن تسمية الملفات أو الأدلة باستخدام الأمر name وله الصيغة التالية: "الاسم الجديد"as "الاسم القديم"name مثال name "c:\mypro\test.exe” as "c:\mypro\test.old” ومن الممكن أن تستخدم الأمر لنقل ملف من دليل إلى آخر فمثلاً : name "c:\mypro\test.exe” as "c:\test.exe” فهنا ننقل الملف test.exe من دليل mypro إلى الدليل الجذري c:\
البحث عن ملفبإستخدام امر dir$ مثل الامر الموجود في نظام دوس مثال : exist$ = dir$ (“c:\vb\icons\computer\disk03.ico”) يحمل المتغير exits$ نتيجة البحث عن الملف . ويمكنك بعد ذلك إختباره مثال : if exist$ <> “” then )"تم العثور على الملف"msgbox ( else "لم يتم العثور على الملف المطلوب"msgbox end if
فتح الملفلكي نقرأ أو نكتب إلى ملف ، يجب أن تفتحه أولاً . ويمكنك فتح الملف باستخدام الأمر open وله الصيغة التالية : رقم الملف as #طور الملفfor اسم الملف open ويعني طور الملف مايلي
بعد فتح الملف يمكنك أن تقوم بالعمليات التالية : v الكتابة إلى الملف تتم الكتابة إلى الملف باستخدام الأمر print وله الصيغة التالية : "ماتريد كتابته" , رقم الملفprint # مثال"خلاص قربت تنتهي دورة فيجول بيسك" , 1print #
مثال على ذلكv افتح مشروع جديد v ضع اداة الأوامر على نافذة البرنامج v وبعد ذلك انقر على اداة الأوامر نقرا مزدوجاً سيفتح لك نافذة البرمجة اكتب مايلي : sub command1_click () open "c:\test.txt” for output as #1 "هذا اختبار لفتح الملفات والكتابة عليها print #1 , " "بإستخدام فيجول بيسك print #1 , " close #1 end sub
القراءة من الملفاستخدم الأمر input وله الصيغة التالية : متغير , رقم الملفinput #
وفي هذه الحالة سيقوم بقراءة سطر كامل من الملف ، ويضعه في المتغير . فإذا فرضنا أنك فتحت الملف تحت الرقم 1 ، يمكنك أن تكتب : input #1 , myline$
فهنا سيقرأ الأمر input سطراً من الملف ويضعه في المتغير myline$
ولكن إحذر أن تقرأ إلى نهاية الملف لإن "فيجول بيسيك" سوف يقوم بتوقيف البرنامج ولحل ذلك اختبر قيمة الأمر ) رقم الملف EOF( if EOF(1) then وصلنا إلى نهاية الملف else لم نصل إلى نهاية الملف end if
جرب القراءة من الملفات : v افتح مشروع جديد v ضع اداة الأوامر على نافذة البرنامج v وبعد ذلك انقر على اداة الأوامر نقرا مزدوجاً سيفتح لك نافذة البرمجة اكتب مايلي : sub command1_click () open "c:\autoexec.bat” for input as #1 do while not eof (1) input #1, a$ print a$ loop close #1 end sub v شغل البرنامج F5
كيف تغلف الملف ؟ بعد أن تنتهي من القراءة أو الكتابة ، يجب أن تغلف الملف وهو سهل جداً ماعليك إلى أن تكتب رقم الملفClose # وإذا كنت تريد أن تغلف ملفات كثيرة فتحتها اكتب Close
كيف تطلب معلومة من المستخدم ؟ومع أنها الان مفهومة ولكن هنا سوف نقوم بشرحها بالتفصيل
طلب معلومة من المستخدم استخدم الامر inputbox$ وله صيغة التالية
رسالة تعني : الجملة التي تريد عرضها على المستخدم عنوان النافذة : هو شريط العنوان في النافذة التي يعرضها على المستخدم قيمة افتراضية : هو القيمة التي تضعها أنت للمستخدم مثل
كيف تعرض رسالة على المستخدم ؟قد ترغب في أحيان كثيرة أثناء سير البرنامج ، أن تطلب من المستخدم أن ستخذ قرارا بشأن مسألة ما . فمثلاً إذا طلب المستخدم حفظ ملف باسم معين ، ثم كان هذا الملف موجوداً على القرص ، فقد ترغب في سؤاله إن كان يريد الكتابة فوقه أم لا . في هذه الحالة تعرض له رسالة وتترك له حرية اختيار الإجراء المناسب ، مثل :
كيف تعرض هذه الرسالة ؟
يتم عرض هذه الرسائل باستخدام الأمر msgbox وله شكلان . الأول إذا كنت تريد عرض رسالة بيسطة ولا تطلب من المستخدم أن تحدد رأيه في مسألة معينة ، في هذه الحالة استخدام الصيغة التالية : عنوان مربع الحوار, الأزرار والرموز , الرسالة المطلوبه msgbox أما إذا كنت تريد أن تعرف رأيه بشئ معين قم بوضع الامر بالطريقة التالية عنوان مربع الحوار, الأزرار والرموز , الرسالة المطلوبه msgbox = المتغير وفي هذه الحالة سيحمل المتغير رد فعل المستخدم
الرسالة المطلوبه : هو الجملة التي تريد عرضها على المستخدم عنوان مربع الحوار : هو عنوان شريط عنوان مربع الحوار الأزرار والرموز : وهو يحدد نوعية الأزرار التي ترغب في عرضها والرموز وهذه الرموز والأزرار :
فإذا رغبت في عرض رسالة تحتوي على الأزرار ok و cancel ومعها رمز علامة الاستعلام ،فإنك تجمع 1+64 = 65 وتستخدمها عندما تطلب الرسالة هكذا : "بدون عنوان", 65, "هذه رسالة للتجربة"msgbox وإذا كنت تريد أن تعرف رد فعل المستخدم ، فإن الأمر msgbox يعود بالاحتمالات التالية :
ومثال على ذلك : sun command1_click () " هل ترغب حقاً في إنهاء البرنامج "msg$ = "الخروج من البرنامج"title = response = msgbox (msg ,36 ,title ) if response = 6 then end end sub
شرح البرنامج : في هذه الحالة سيعرض "فيجول بيسيك" الرسالة وإذا اختار المستخدم "نعم" yes فإن "فيجول بيسيك" ينهي البرنامج .
الصوت في "فيجول بيسيك" يجب كتابة هذا الربط الديناميكي في ملف برمجة في سطر واحد ولكنه هنا في سطرين . Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
أما هذا الامر فوق النافذة نفسها وتضعه في general Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
وبعد كتابة هذا السطر ماعليك الان إلا كتابة الاسم فقط وهو SNDPLAYSOUND
DIM Result as integer Result = sndplaysound(“c:\windows\toda.wav”,3)
يقوم هذا الاجراء بمعرفة مسار برنامجك الذي شغل منه ثم يشغل ملف موجود في نفس المسار وهو أفضل من السابق . b$ = app.Path ) sound1 = SNDPLAYSOUND(b$ + "\" + "ton.WAV", 3
|
Copyright © www.kettaneh.net