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

الطريقة الافضل لانهاء برنامجك وازالته من الذاكرة!

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

كود لانهاء البرنامج بطريقة صحيحة حتى لا يترك اجزاء منه فى الذاكرة

'نضع في كود زر انهاء البرنامج هذا الكود
Dim f As Integer 
f = Forms.Count 
Do While f > 0 
Unload Forms(f - 1) ' 
If form isn't 
unloaded 
exit (User had canceled...)
If f = Forms.Count Then 
Exit Do f = f - 1 
Loop 
End

تم تعديل هذه المشاركة بواسطة hanysaad في 10 أغسطس 2005 في 03:52

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#2

شكراً هانى

وبطريقة اخرى

Private Sub Form_Unload (Cancel As Integer)
Dim F As Form
For Each F In Forms
Unload F
Set F = Nothing
Next
End
End Sub

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#3

شكرا لكم إخواني على الأفكار الجميله

essam.gif

منتديات كوكب الكمبيوتر

لكل جديد في عالم تكنولوجيا المعلومات والكمبيوتر والأخبار العلمية

http://www.planetss.com/vb

#4

والله اخ هاني واخ Ghost2010 انا اصبحت من المتتبعين لكل مشاركاتكم ارجو ان تقبلوني صديق لكم ولجميع الاخوة في هذا المنتدى الرائع

من تواضع لله رفعه

#5

نرحب بك اخ وصديق جديد لنا ونحن نتشرف بذلك

بعد اذنك ياهانى تحدثت بالنيابة عنك :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#6

انا لي الشرف اخ Ghost2010

من تواضع لله رفعه

#7

السلام عليكم

اخى محمد

شكرا على الطريقة

وطبعا انت تتكلم عنى براحتك ياباشا :D

الاخ seaprince46

شكرا لك على المتابعة

الاخ hussein2005

شكرا جزيلا على رأيك وصداقتك تشرفنى وتسعدنى بالطبع

مرحبا بك اخ وصديق فى المنتدى

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#8

و ايه المشكلة لما أعمل END و لا مش هتكون مناسبة :)

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#9

بص ياعم احمد

لو البرنامج بتاعك جواه اكتر من فورم وبتستخدم للتنقل بينهم الامر FormName.Hide بالطريقة دى الفورم يكون محمل فى الذاكرة وطبعاً ده بيؤدى لبطء نسبى فى الاداء علشان كده بعد ماتقفل البرنامج لازم تحرر المساحات الخاصة بالبرنامج المحجوزة فى الذاكرة اما لو بتستخدم Unload FormName فممكن تستخدم End مباشرة :rolleyes:

تم تعديل هذه المشاركة بواسطة GHOST2010 في 11 أغسطس 2005 في 09:33

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#10

طب أن هاجرب أفتح 500 فورم و اشوف الفرق :D

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#11

جربتاه يا باشا و طلعو الأثنين زي بعض :) حملت 50 فورمة و باردة مفيش فرق :)

Private Sub Command1_Click()
    Dim a(50) As New Form1
    For i = 0 To 50
        a(i).Show
    Next
End Sub

Private Sub EndRight()
    Dim F As Form
        For Each F In Forms
            Unload F
            Set F = Nothing
        Next
    End
End Sub

Private Sub EndWrong()
    End
End Sub

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#12

:lol: :lol:

ياعم احمد انت باستخدام End مش بتحرر المساحة المحجوزة فى الذاكرة وبالتالى بتأثر على سرعة الجهاز حتى لو كان البطء مش واضح لان ده راجع لامكانيات الجهاز لكن المساحة بتتحرر بعد عمل ريستارت

حاول تفهم المنطق :lol:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#13

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

hussein2005 كتب:
والله اخ هاني واخ Ghost2010 انا اصبحت من المتتبعين لكل مشاركاتكم ارجو ان تقبلوني صديق لكم ولجميع الاخوة في هذا المنتدى الرائع

وأكيد أنا أيضا

كما أشكر الأخ Neo على محاولة الاثبات وباسلوب علمي عملي .

على كل حال أحبذ استخدام الطرق في المشاركة 1 أو 2 ثم استخدام end

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

تم تعديل هذه المشاركة بواسطة البريشي في 11 أغسطس 2005 في 10:03

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

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

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

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

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

***

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

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

***

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

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

***

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

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

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

#14

لو أستخدمنا هذا المنطق يبقى لازم تبدأ برنامج صح من الأول يعني كل لما تحجز متغير تعرفة ( متعدمش أن الـVB هيظبط العملية ) يعني تستعمل Option Explicit بالأضافة عن انتهائك من أستخدام متغير أو مكتبة معينة أن تقوم بمحوها من الذاكرة Set Varible = nothing كمان يريت يكون مع البرنامج بتاعك Flow chart معمولة بدقة علشان تعرف راسك من رجليك الاهم و الأحلى من ذلك أن تحاول قدر الأمكان تقليل أستخدام الأدوات الـOCX و عدم الاكثار من الـصور الى لو هتعمل لعبة طبعا :D

و شكرا لحسن أستماعكم كان معكم أحمد عصام من أمام الشاشة :D

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#15

:( :( :( :(

طلعت نفس طريقة الأخوة هاني ومحمد

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

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

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

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

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

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

***

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

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

***

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

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

***

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

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

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

#16
اقتباس
لو أستخدمنا هذا المنطق يبقى لازم تبدأ برنامج صح من الأول يعني كل لما تحجز متغير تعرفة ( متعدمش أن الـVB هيظبط العملية ) يعني تستعمل Option Explicit بالأضافة عن انتهائك من أستخدام متغير أو مكتبة معينة أن تقوم بمحوها من الذاكرة Set Varible = nothing

كلامك مظبوط ياعم احمد وعلى فكرة قتل المتغيرات قبل انهاء البرنامج شئ اساسى عند تقييم البرامج لانها تزيد من كفاءة البرنامج وتدل على مستوى المبرمج وعلشان كده انا البرامج الجديدة اللى باعملها دايما فى حدث الانهاء باحول مسار البرنامج الى دالة اسمها KillAllVariables باقضى فيها على كل المتغيرات وبعدين انهى البرنامج :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#17

طيب ممكن تحط االدالة الى بتموت كل المتغيرات ديه لحسن عندي شوية خنقني

ممكن فعلا تضع هذه الدالة ليتستفيد منها الجميع

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#18

:lol: :lol:

يااحمد ياحبيبى

الحكاية ببساطة شديدة جداً ان المتغيرات بتموت بمجرد انهاء البرنامج اما الكائنات بتستعمل معاها

Set Object = Nothing

ولو انا عايز اقتل المتغيرات كمان قبل انهاء البرنامج باعرف المتغيرات على انها من النوع Variant وباستعمل نفس الكود السابق لكن الافضل انك ماتستخدمش متغيرات من النوع ده لانها ابطأ انواع المتغيرات لانها تحمل قيمة لاى نوع من المتغيرات

فهمت؟ :lol:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#19

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

" أنا فكرت أستعمل بيروسول بس مجبش نتيجة " :D

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#20

السلام عليكم

انا سعيد جدا من هذا النقاش المفيد والتفاعل مع الموضوع :D

الاخ البريشي

اقتباس
QUOTE(hussein2005 @ Aug 10 2005, 11:09 AM)

والله اخ هاني واخ Ghost2010 انا اصبحت من المتتبعين لكل مشاركاتكم ارجو ان تقبلوني صديق لكم ولجميع الاخوة في هذا المنتدى الرائع

وأكيد أنا أيضا

شكرا لك

ده شىء يسعدنا ويشرفنا

بعد اذنك يامحمد تحدثت بالنيابة عنك :lol:

اقتباس
طلعت نفس طريقة الأخوة هاني ومحمد

فى الواقع انا مش فاهم تقصد ايه

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

بس لو انهيت البرنامج ب END مش هيجرى حاجة :o بس الطريقة دى زيادة فى التأكد والاحترافية فى تصميم برنامجك

نقطة اخرى اود ان اشير لفت نظرى لها الاخ neo فى كلامه

بالفعل المبرمج المحترف عندما يصمم برنامج لا ينظر فقط الى ان البرنامج شغال والسلام

بل لابد ان يضع فى اعتباره سرعة تنفيذ البرنامج وتأثيره على الرام و...............

فمثلا لا يستخدم متغيرات لا يحتاجها

او لا يستخدم مثلا متغير double وهو فى الواقع يحتاج الى متغير long

او لا يستخدم متغير من النوع variant وهو لا يحتاج لذلك فعليا كما قال الاخ محمد المهدى

وهكذا.........

موضوع له علاقة بهذا الموضوع يقارن بين الاكواد الاسرع والابطأ فى التنفيذ

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#21
neo كتب:
و ايه المشكلة لما أعمل END و لا مش هتكون مناسبة :)

End سوف تنهي البرنامج لكن في حالة وجود حدث مثل QueryUnload , unload فلن يتم تنفيذهم

لذلك لا ينصح بإستخدامها

على فكرة، عند انتهاء البرنامج سوف يقوم ويندوز بتحرير كل الذاكرة المستخدمة من قبل ال proccess سواء تم كتابة الكود السابق الخاص بعملية ازالة كل فورم من الذاكرة ام لا

الكود السابق يفيد اثناء تشغيل البرنامج واردت ازالة النماذج الغير مستخدمة فذلك سوف يقلل من استهلاك الذاكرة للبرنامج

وايضا في حالة وجود كود في احداث unload وQueryunload

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#22

شكراً استاذ محمد ويارب تكون اقتنعت ياعم احمد :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#23

و الله أنا مقتنع من الأول بس أنا حبيت أعمل Refresh للموضوع مش أكتر

و بعدين للعمل أنا بهتم بموضوع الأداء جدا و بحاول أحسن منه ديما :)

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…