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

unload me

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

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

الان بعد كتابه سطر

unload me

لو وقمت بعرض رساله بعد هذا السطر

ستنفذ :blink:

على ما اعرف ان

me.hide

تخفي الشاشه ولكنها محمله على الذاكره لذا يمكنك تنفيذ الجمل التي تليها

اما unload me

تقوم بقتل الشاشه وتصبح غير محمله على الذاكره

فكيف تنفذ العمليات التي تليها أرجوا التوضيح

تحياتي

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#2

انتي فهمتي غلط :D

unload بيعمل ايه أساسا؟

بينفذ أي حاجة لازم تتنفذ في النهاية يعني مثلا تدمير الكائنات في الذاكرة أو شيء من هذا القبيل

فهو يتيح لك أولا القيام بكل ال house keeping :D

ثم بعد ذلك ينفذ ال unload بل و هناك أيضا terminate وهو بعد unload و لكن استخداماته نادرة علي حد قول ستيف براون :)

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#3

أشكرك أخي romantic_boy ولكن لم افهم شي :blink:

أرجوا توضيح الأمر ........ برجاء

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 18 أبريل 2005 في 20:43

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#4

الحكاية بسيطة ده لو كانت أصلا حكاية، الموضوع كده عامل زي ما تكوني بتعملي شاي و مستنية لما المية تغلي عشان تطفي النار يا تري انتي تتوقعي ايه اللي يحصل الاول ان المية تغلي و لا انك تطفي النار؟

كذلك البرنامج ينتظر حتي يتم تنفيذ الأكواد الموجودة في ال form_unload و بعد ذلك يقوم بعمل ال unload و الدليل علي ذلك أنك تستطيعين الغاء عملية ال unload عن طريق ال cancel parameter و مثال ذلك لو حبيتي تحطي رسالة تسأل المستخدم اذا كان يريد الخروج من البرنامج و لا لأ

فلو ضغط علي yes كان بها و يقوم بعمل ال unload و لو ما كانش يخلي ال cancle = true يعني يوقف العملية

هو الموضوع بسيط بس المشكلة ان انتي متعلق بذهنك ان المترجم بينفذ ال unload الاول و ده غلط طبعا لأن ده حدث يجب أن تنفذ أكواده و الا ما وضعوه أصلا :D

أرجوا أن أكون أوضحت الأمر

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#5

:lol: Thanks a lot

Vere Vere Good :lol:

a'm understend Now

But B) !!!

house keeping

terminate

لو ممكن توضحلي دول ايه

ومن هوا

ستيف براون :blink:

,تحياتي---------------------

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#6

house keeping : معناها شغل البيت المتبقي يعني و أقصد به أي اجراءات تريدين تنفيذها قبل غلق البرنامج

terminate : هو حدث يأتي بعد ال unload و يقوم بغلق البرنامج نهائيا (مشفتيش فيلم terminator و لا ايه :D ) و يأتي بعد حدث unload و ا ستخداماته نادرة

ستيف براون: هو أحد كتاب visual basic المشهورين و مؤلف الكتاب المشهور visual basic 6 in record time

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#7

بسم الله الرحمن الرحيم

أولا أحب أن أوجه التحية لالأخت POWER _GIRL والأخ romantic_boy على النقاش الرائع .

وبالنسبة لي فأنا أشارك POWER _GIRL الاستغراب حيث يفترض بالـ UnLoad أن تعمل على غلق الـ Form عند تنفيذها ( بعد تنفيذ الـ UnLoad Event ) وأن لا يتابع العمل في حتى انتهاء الـ Sub .

بالنسبة للأخ romantic_boy كلامك صحيح بس المسألة مش تنفيذ الـ Event بل متابعة باقي الأوامر بعد استدعاء الـ UnLoad .

وعلى كل حال اقترح وضع

ُExit Sub

بعد استدعاء الـ UnLoad ، حيث يقوم بقطع بالخروج من الاجراء الحالي Sub .

وان شاء الله يكون الاقتراح مفيد .

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

********************* ******************** *********************

(( أشــهد أن لا اله الا الله ..... وأشهد أن محمد رسول الله ))

********************* ******************** *********************

لا تقـل من أيـن أبدأ

طـاعـة الله الـبدايـة

***

لا تقـل أين طـريـقي

شــرع الله الهـدايـة

***

لا تـقـل أيـن نعـيمي

جـنـة الله كـفـايـــــة

***

لا تقـل في الغـد أبدأ

ربمـــا تأتـي النهـايـــة

**************** **************** ****************

#8

مرحبا شباب

اود فقط توضيح شيئ معين بخصوص ال unload فهذ الحدث مثله كمثل اي اجراء فعندما تقوم بغلق الاطار او الخروج منه او بالأحرى عند الضغط على اشارة x او عمل me.unload

فهو يقوم بتنفيذ مابداخل هذا الاجراء وكما قال الصبي الرومانسي لو كنت تريد مثلا عدم استطاعة المستخدم اغلاق الاطار او البرنامج من الاكس فما عليك الا تعمل الآتي:

Private Sub Form_Unload(Cancel As Integer)

cancel=1

End Sub

وبإمكانك وضع اي كود في داخل هذا الاجراء و في السطر الاخير قبل end sub فقط ضعو cancel=1 كأن مثلا

Private Sub Form_Unload(Cancel As Integer)
MsgBox "áæ ÓãÍÊ ÇÔÊÛá ÕÍ æÇÛáÞ ÇáÈÑäÇãÌ ãä ÇáÞÇÆãÉ ÇáãÎÕÕÉ", vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "ÇÔÊÛá ÕÍ"
Cancel = 1
End Sub

وهذا مثال يوضح ذلك

unload.rar

#9

thanks B) romantic_boy

B) but how you know some word like that!!

i know 2 word :lol:

donkey work

but it user shoes

terminator movie :blink:

not yat

but i will be

i try used Terminate but i have error :unsure:

Unload Me
Terminate

and i think to add new subject abut word like

house keeping

donkey work

with

meaning B)

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#10

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

أشكرك أخي البريشي على مشاركتك

لكن اعتقد ان الموضوع اتضح للunload ولا ايش رأيك !؟

وبالنسبه لي Exit Sub

كان هذا حلي ايضا

تفكير واحد B)

تحياتي -----------------------------------------------------

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 19 أبريل 2005 في 16:49

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#11

freepreasone

:D شكرا على التوضيح ..........................

أنا فهمت شي جديد من مثالك

انا بستدعي الاجراء !

بس انا كدا حاسه بلخبطه :wacko:

نربت الافكار

الان لما نقول unload me

إحنا بنستدعي إجراء unload

ثم تنفذ الاسطر الموجوده بداخل إجراء unload

بعد كدا تحدث عميله عدم التحميل للفورم unload (لو ما اضفنا سطر الالغاء 1=cancel)

إلى الان كويس

ولكن لو كتبنا بعد unload me

مر اخر لما ذا ينفذ..

حاسه اني رجعت لنقطه البدايه :(

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#12

LOCK

HERE

PLEASE

PG_unload.rar

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 19 أبريل 2005 في 17:38

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#13

exit sub لن يعمل لأن هذا حدث و المترجم دائما ما تكون رأسه و ألف old shoes :D انه ينفذالحدث لان دي مسألة كرامة بالنسبة له :D

و التجربة خير مثال

Private Sub Form_Unload(Cancel As Integer)
Dim i As Integer
i = MsgBox("are u sure u want to exit?", vbYesNo)
If i = vbNo Then Exit Sub
End Sub

ستجد المترجم يقولك (ابقي قابلني) :D

و لكن جرب ذلك

Private Sub Form_Unload(Cancel As Integer)
Dim i As Integer
i = MsgBox("are u sure u want to exit?", vbYesNo)
If i = vbNo Then Cancel = True
End Sub

ان شا الله أكون وضحت المعلومة و السلام عليكم

بالنسبة للأخت power_girl أنا و الحمد لله انجليزيتي قوية جدا خاصة الأمريكية و ذلك بسبب دراستي و متابعتي المكثفة كما أنني حاصل علي toefel من الجامعة الأمريكية بالقاهرة.

و لكن علي أي حال اللغة ممارسة ولو أخذتي كل كورسات العالم لن تبرعي فيها اذا لم تحبيها

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#14

1 :lol:

romantic_boy

كيف يمكنني إستخدام

Terminate

داخل الكود

2 :lol:

أنا قلت انك فهمتني غلط

بعد ماشوفت مثال الاخ freepreasone

وياريت تشوف مثالي لتحديد موضع UNLOAD>>

3 :lol:

ME GOOD IN ENGLISH LANGUGE

:angry: OR U SEE ELSE

تحياتي :lol:

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#15

terminate هو حدث و ليس دالة و هو يأتي بعد unload و لا يستخدم في تفيذ اوامر عند الخروج من البرنامج بالشكل الذي تتصورينه و كما قلت لك استخدامات نادرة ...... (1)

اقتباس
Private Sub Command1_Click()
MsgBox ("before Unload")
Unload Me
MsgBox ("æåÐå ÇáãÝÑæÖ ãÇÊØáÚ after Unload")
End Sub

المترجم لا يستطيع الخروج من الاجراء قبل تنفيذ جميع الأكواد الا اذا أعطيتيه تصريحا مباشرا بذلك

كما و ان ال unload ليس حدث انهاء البرنامج لأن مش دايما البرنامج فورم واحدة و بفرض مثلا أنك أردتي عمل الاتي

unload me
form2.show

فما الحل اذا؟ ;)

و التصريح المباشر يكون بال exit sub أو end و تذكري أن exit sub لن تعمل في حدث ال unload لأن التعامل معه يكون بشكل اخر و من خلال ال parameter cancel أي أن exit sub ستعمل فقط في حدث الزر و لا تسأليني لماذا بل اسألي مصممي الفيجوال و ان كنت أعتقد أن ما فعلوه هو ما كنت سأفعله بالضبط لو كنت مكانهم :D (لو) ..... (2)

(3) ... else :D

تم تعديل هذه المشاركة بواسطة romantic_boy في 19 أبريل 2005 في 18:12

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#16

لو اسه مش فاهمة أو لو أي حد قرأ الموضوع و لسه مش فاهم يقول و ان شاء الله أجاوبه

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#17

بصراحه يعطيك ويعطي كل الاخوه الي شاركو معانا الف مليون عافيه وتوفيق من رب العباد

امين :rolleyes:

والله توضيح اكتر من رائع أخي romantic_boy :lol:

وأنا استنتجت استنتاج وهوا B)

إن unload لا تمحوا الفورم من الذاكره

ولذلك قلت لي فمشاركه اخرى حرري الذاكره من الفورم بإستخدام

Set form = Nothing

ولذلك تنفذ باقي الاكواد التي تلي استدعاء هذا الحدث

:unsure: كلامي صحيح!.

وسؤال اخر وهوا لماذا لاتكفي كلمه End

لإنهاء البرنامج ويجب عمل unload لجميع الفورمات!.

أما عن 3 فليش كان ردك ميؤوس مني <_<

Give me steps to move

up......

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#18

شباب هادا تعديل على البرنامج بس بدل ما تضغطو f5 اضغط f8 و تتبعو البرنامج وراح تعرفو الحل

شكرا

unload.rar

#19

بسم الله الرحمن الرحيم

أولا أرجو أن تعذروني بالنسبة لقلة ردودي حيث أني وحسب طبيعة عملي لا أقدر أن أدخل على المنتدى الا في النهار وقبل الساعة الرابعة تحديدا . بعكس مشاركاتكم ، لسوء حظي .

ثانيا بالنسبة للأخ romantic_boy يبدوا أنك فهمتني خطأ ، يمكن انه قدرتي على الشرح والتعبير تعبانه لذا أرفق لكم هذه الصورة لعلها توصل الفكره لكم .

أي أن الـ Exit Sub تنهي الاجراء الحالي بغض النظر عن اسمه Unload My_Sub Command_click وغير ذلك .

exit sub.bmp

********************* ******************** *********************

(( أشــهد أن لا اله الا الله ..... وأشهد أن محمد رسول الله ))

********************* ******************** *********************

لا تقـل من أيـن أبدأ

طـاعـة الله الـبدايـة

***

لا تقـل أين طـريـقي

شــرع الله الهـدايـة

***

لا تـقـل أيـن نعـيمي

جـنـة الله كـفـايـــــة

***

لا تقـل في الغـد أبدأ

ربمـــا تأتـي النهـايـــة

**************** **************** ****************

#20

freepreasone

f5 تشغيل البرنامج

f8 تشغيل إجراء !؟

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#21

تحيه طيبه

أشكرك على تواجدك الان

بالنسبه لعمل Exit Sub أعتقد أن كلاكما على صواب

عشان كل واحد لو قصد مختلف..

أخي البريشي انت تقول Exit Sub ينهي ا ي اجراء

وكما رأيت فالصوره فلا يعرض الرساله التي تلي امر الانهاء

حتى لو كان داخل اجراء unlode

بالنسبه للأخ romantic_boy كان يتحدث

عن ان امر الانهاء لن يوقف عمليه unlode الاساسيه (إلا 1=cancel)

وليس مايقصده السطور التي تلي امر الانهاء فالاجراء

أرجو ان يكون كلامي سليم.. :lol:

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#22

ما شاء الله عليكم ..

الحقيقة دائماً ما تكون هذه النقاشات مفيدة سواء لمن يشارك بها ( أنتم على سبيل المثال ) أو من يقرأها لاحقاً ( أنا والأعضاء ) ..

في أول مشاركة كانت الأخت POWER _GIRL تسأل عن الإجراء Unload ووظيفته Unloads a form or control from memory ولماذا لا يتم تحرير الذاكرة مباشرة حيث أنه يتم تنفيذ الأوامر اللاحقة له، والواقع أنه سيتم إكمال أوامر الإجراء أيضاً، ويمكن تفادي ذلك بالأمر End أو الخروج من الإجراء بالأمر Exit كما ذكر الإخوة ..

الإجراء السابق يختلف عن الحدث Unload الخاص بالنموذج والذي يتم إطلاقه عند محاولة إغلاق النموذج بشكل تقليدي ( من المربع × في الجانب العلوي للنموذج ) أو عند محاولة إغلاق البرنامج بالإجراء Unload، ويتيح هذا الحدث إمكانية للتراجع عن الإغلاق، ودائماً ما يستخدم في التأكيد على المستخدم بحفظ المعلومات أو ما شابه قبل الإغلاق ..

لاحظ أنه في حال تنفيذ الأمر End فإنه لن يتم إطلاق الحدث Unload الخاص بالنموذج وسيتم إنهاء البرنامج بالكامل مباشرة، حتى ولو احتوى على أكثر من نموذج فسيتم إغلاقها جميعا ..

الـ F8 تساوي الـ F5 مع اختلاف بسيط وهو أنه يتم تنفيذ البرنامج خطوة بخطوة ..

كلما نضغط على F8 يتم تنفيذ أمر ثم الذي يليه ثم الذي يليه وهكذا ..

وهو مهم جداً لاكتشاف الأخطاء ولفهم آلية عمل البرنامج ..

بالتوفيق

ani.gif
#23

بسم الله الرحمن الرحيم

تحية للجميع

أنا لم أقصد أن كلام الأخ romantic_boy فيه خطأ ، لكني أحببت أن أوضح وجهة نظري فقط مع الشكر للجميع .

ولا أريد أن أعلق على ما فات أكثر فالمهم أن المعلومة وصلة للجميع .

والسلام عليكم

********************* ******************** *********************

(( أشــهد أن لا اله الا الله ..... وأشهد أن محمد رسول الله ))

********************* ******************** *********************

لا تقـل من أيـن أبدأ

طـاعـة الله الـبدايـة

***

لا تقـل أين طـريـقي

شــرع الله الهـدايـة

***

لا تـقـل أيـن نعـيمي

جـنـة الله كـفـايـــــة

***

لا تقـل في الغـد أبدأ

ربمـــا تأتـي النهـايـــة

**************** **************** ****************

#24

تحية خاصة لك أستاذي القدير عبد الله فتحي

والله كلامك ونصائحك تدفع للأفضل :lol:

:unsure: استاذي برنامجي بعد تنفيذ أمر End

لا يتم إنهاؤه بالكامل تبقى بعض النماذج محملة..!

اقتباس
وسؤال اخر وهوا لماذا لاتكفي كلمه End

لإنهاء البرنامج ويجب عمل unload لجميع الفورمات!.

-----------------------------------------------

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 20 أبريل 2005 في 13:47

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#25

فعلا مثل ما قال مشرفنا عبد الله فتحي

أن مثل هذه النقشات مفيده جداااااااا وهذا ليس بغريب على صاحبة الافكار الجديدة والمتألقة والمتجددة

دائما في استفساراتها وأسئلتها الاخت POWER _GIRL :rolleyes:

واعتقد أن هذا الموضوع تم النقاش فيه بشكل ممتاز

والله يوفق الجميع B)

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة

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

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