الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما هو الفرق بين هذه الأحداث ؟

مغلق
بدأه MSrahieb_100 في 1 يناير 2005 · 6 رد · 1,551 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله وبركاته

ما هو الفرق بين هذه الاحداث الخاصة بال Form ؟ :unsure:

1-Intialize & Load.

2-Terminate, QuerUnload & Unload.

و شكرا

ان اجــمل الزهـــــــــــر مانـــــبت بحــــــــدائق الاحـــــــــــــــزان

Eng. Mohammed Salah

#2

ايه الحكاية؟ :unsure:

مفيش ردود لية؟ :o

ان اجــمل الزهـــــــــــر مانـــــبت بحــــــــدائق الاحـــــــــــــــزان

Eng. Mohammed Salah

#3

السلام عليكم ،

1- Intialize ينفذ الحدث عند اقلاع النموذج لمرة واحدة فقط عند تشغيل البرنامج

2- Load ينفذ الحدث عند كل مرة يتم تحميل النموذج في كل مره .

#4

مشكور اخ اشرف على ردك

ولكنى اريد ان اعرف ايهما اسبق فى التنفيذ؟

وكذلك الحال بالنسبة للاحداث الخرى Unload,queryunload& terminate

و شكرا

ان اجــمل الزهـــــــــــر مانـــــبت بحــــــــدائق الاحـــــــــــــــزان

Eng. Mohammed Salah

#5

السلام عليكم

الحدث Initialize هو أول حدث يتم إطلاقه عند إنشاء نسخة جديدة من النافذة. في هذه المرحلة كائن النافذة لم يخلق بعد, الأدوات لم تخلق. يفيد هذا الحدث في إعطاء بعض القيم الإبتدائية للمتحولات العمومية أو الخصائص المنشئة من قبل المستخدم(وليس الخصائص الخاصة بالنافذة بحد ذاتها لأنها لم تخلق حتى الآن), أو قراءة بعض المعلومات من الريجستري و الضرورية قبل خلق النافذة و أدواتها.

الحدث Load في هذه المرحلة قام فيجوال بيسك بتحميل النافذة و جميع أدواتها إلى الذاكرة, لكنها غير مرئية بعد. و بالتالي إجراء أي عملية رسومية على النافذة أو أدواتها غير مجد و لن تظهر نتائجها. من جهة أخرى, استدعاء بعض الطرق الخاصة بالنافذة أو أدواتها و التي تقتضي تأثير مرئي سيسبب خطأ (مثل المنهج SetFocus ).

ملاحظة : إذا قمت بتغيير أو طلب إحدى الخصائص(أو الإجراءات) الخاصة بالنافذة أو أدواتها ضمن الحدث Initialize سيقوم فيجوال بيسك بتحميل النافذة (و أدواتها) و سيتم إنطلاق الأحداث الموافقة بما فيها الحدث Load قبل إكمال باقي الكود المكتوب في الحدث Initialize .

الحدث QueryUnload قيجوال بيسك يقدم معلومات حول الطريقة التي تمت بها عملية إغلاق النافذة قبل الشروع بإغلاقها مع ترك فرصة لإلغاء العملية. هنالك وسيطان مع هذا الحدث, الأول هو Cancel و هو مرر بالمرجع و بالتالي يمكنك تغيير قيمته, و هو من Integer , تمرير أي قيمة غير صفرية له(True) سوف يلغي عملية إغلاق النافذة. الوسيط الثاني هو UnloadMode و الذي يحدد الطريقة التي تم بها إغلاق النافذة. مثلا:

القيمة 0 تعني أن المستخدم قام بإغلاق النافذة, القيمة 1 تعني أن النافذة تم إغلاقها بالكود, 2 قد تم إغلاق ويندوز , 3 تم إغلاق النافذة من قبل إدارة المهام, 4 نافذة MDI الموجودة ضمنها هذه النافذة تم إغلاقها, 5 النافذة المالكة لهذه النافذة تم إغلاقها.

و لا تنسى يمكنك دوما إلغاء عملية إغلاق النافذة بتمرير قيمة غير صفرية للوسيط Cancel . مثلا:

يقوم هذا الكود بمنع إغلاق النافذة من قبل المستخدم:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Select Case UnloadMode
 Case 0, 3
  Cancel = 1
End Select
End Sub

الحدث Unload النافذة على وشك الإغلاق, يتم إطلاقه بعد الحدث QueryUnload , هنا لا يمكنك معرفة الطريقة التي تمت بها عملية الإغلاق, مازال لديك فرصة لمنع عملية الإغلاق من خلال الوسيط Cancel .

الحدث Terminate يتم إطلاقه قبيل إلغاء الذاكرة المحجوزة من قبل النافذة و أدواتها, هنا النافذة سيتم تدميرها و لا يمكنك منع ذلك. النافذة غير مرئية في هذه المرحلة. وهو آخر حدث يتم إطلاقه.

#6

بارك الله فيك يا أخ MoonMan وزادك الله علما

#7

اولا شكرا لك اخ MoonMan :D

ثانيا

لقد قمت بالبحث و وجدت الاجابة

وسوف اضعها من اجل ان تعم الفائدة

وهذا هو ترتيب احداث النموذج حسب الاسبقية

Intialize-Load-Resize-Activate-Paint-Deactivate-QueryUnload-Unload-Terminate

بالتوفيق

ان اجــمل الزهـــــــــــر مانـــــبت بحــــــــدائق الاحـــــــــــــــزان

Eng. Mohammed Salah

هذا الموضوع مغلق.

مواضيع مشابهة