PDA

View Full Version : خروج متغیر از حافظه



پیمان 1
دوشنبه 24 بهمن 1384, 22:51 عصر
فرض کنید یک فرم پس از اینکه چک شد که در حافظه نیست show شد(از یک کلاس فرم در واقع دو Object همزمان نداشته باشیم) با استفاده از Is Nothing
حالا چطور می شه در run time این فرم رو close و دوباره Show کرد

SYSMAN
سه شنبه 25 بهمن 1384, 15:29 عصر
دقیقا متوجه منظورتون نشدم اگه ممکن هست کمی توضیح بدهید

پیمان 1
سه شنبه 25 بهمن 1384, 16:36 عصر
فرض کنید درون کلاس یک فرم یک متغیر مثلا Flogin از نوع یک فرم دیگر(LoginForm) تعریف کرده ایم حال مثلا درون رویداد یک Button کد زیر را می نویسیم
If (fLogin Is Nothing) Then
fLogin = New LoginForm
() fLogin.Show
End If
حال در زمان اجرا فقط یکبار این فرم Show خواهد شد در صورتی که بخواهیم پس از Close کردن فرم دوم کاربر دوباره بتواند فرم را Show کند (با رویدادن event ی کد بالا در آن است)
در ابتدا هدف این بود که اگر فرم قبلا توسط کاربر Show شده ولی هنوز Close نشده کاربر نتواند از همان فرم نسخه دیگری Show کند
با تشکر

مجتبی کریمی
سه شنبه 25 بهمن 1384, 19:47 عصر
سلام
خوب راه حلی که من به نظرم رسید اینه :
شما می تونی یه متغییر از نوع Bool درست کنی تو یه ماژول ، وقتی که فرم رو نمایش می دی اونو بابر True قرار بدی و تو رویداد FormClose مقدار اونو بابر False قرار بدی
اینطوری از نمایش چند Form یکسان جلوگیری می شه

Hamedm
سه شنبه 25 بهمن 1384, 20:09 عصر
فرض کنید درون کلاس یک فرم یک متغیر مثلا Flogin از نوع یک فرم دیگر(LoginForm) تعریف کرده ایم حال مثلا درون رویداد یک Button کد زیر را می نویسیم
If (fLogin Is Nothing) Then
fLogin = New LoginForm
() fLogin.Show
End If
حال در زمان اجرا فقط یکبار این فرم Show خواهد شد در صورتی که بخواهیم پس از Close کردن فرم دوم کاربر دوباره بتواند فرم را Show کند (با رویدادن event ی کد بالا در آن است)
در ابتدا هدف این بود که اگر فرم قبلا توسط کاربر Show شده ولی هنوز Close نشده کاربر نتواند از همان فرم نسخه دیگری Show کند
با تشکر

سلام

ببین راه حل این مشکل رو قبلا گفته ام.
میدونی چرا با زدن دکمه چند بار SHOW میشه؟ چون شما هر بار داری یک متغیر NEW میکنی.

ببین در ماژول یک متغیر از نوع فرمت NEW کن البته بصورت Friend . بعد دیگه با این متغیر کار کن دیگه نیاز نیست برای Click دکمه یک بار دیگه متغیر NEW کنی. البته بعد از Close کردن بلافاصله همون متغیر رو از اون فرمت NEW کن.

در پناه حق موفق باشید و پرتوان