PDA

View Full Version : سوال: اطلاع از Load بودن يا نبودن يك Form



A.Farzin
چهارشنبه 01 خرداد 1387, 18:09 عصر
با سلام

اگر از طريق Form1 بخواهيم بدانيم كه Form2 در حال حاضر Load است يا نه از چه متدي ميتوان كمك گرفت؟
آيا شكل انجام اين كار براي حالتي كه Form1 و Form2 بچه‌هائي از يك MDIForm هستند با زماني كه نيستند فرق ميكند؟

ممنون

xxxxx_xxxxx
چهارشنبه 01 خرداد 1387, 18:17 عصر
شما در این جور مواقع می توانید از یک متغیر Global استفاده کنید. به این صورت:

1- متغیری مثلا با نام CheckLoad از نوع Boolean را در یک ماژول تعریف می کنیم.

2- در رویداد load فرم2 مقدار این متغیر را برابر True قرار می دهیم

3- در رویداد unload فرم2 مقدار این متغیر را برابر False قرار می دهیم

4- حالا در فرم یک هرجا که می خواهید مقدار متغیر CheckLoad را بررسی نمایید تا از وضعیت فعلی فرم2 مطلع شوید.

تذکر: دوست عزیز دقت کنید که متغیر حتما باید در یک ماژول تعریف گردد.

موفق باشید

xxxxx_xxxxx
چهارشنبه 01 خرداد 1387, 18:21 عصر
فکر کنم راهی که جناب Obalitjooon فرموده اند درست کار نکند چون این عبارت
"Form2.Show = True Then" به وضوح اشتباه است.

با عرض معذرت

vbhamed
پنج شنبه 02 خرداد 1387, 00:37 صبح
سلام
با اين روال ميشه :


Public Function IsLoad(Name As String) As Byte

Dim fc As Integer, i As Integer

fc = Forms.Count - 1
IsLoad = 0

For i = 0 To fc
If UCase$(Forms(i).Name) = UCase$(Name) Then
IsLoad = 1
Exit For
End If
Next

End Function
.
.
.
.
if IsLoad("Form2") Then ...

H4i0 ACP
پنج شنبه 02 خرداد 1387, 09:25 صبح
سلام
میشه با توابع API از Load یا Unload بودن هر فرمی در هر برنامه ای از طریق برنامه خودمون مطلع شد .

vbhamed
پنج شنبه 02 خرداد 1387, 17:18 عصر
سلام

H4i0 ACP عزيز

فكر كنم منظور دوستمون بار بودن فرم در حافظه است نه اينكه روي صفحه نمايان هست يا خير
با دستوري كه شما نوشتين، موقع چك كردن اگر فرم تو حافظه نباشه، خود به خود Load ميشه و ما اينو نمي خواهيم