PDA

View Full Version : سوال: نحوه استفاده از style متد show



ayson0
سه شنبه 13 تیر 1391, 05:01 صبح
سلام خوبین؟! ستایل متد show چی هست و به چه دردی میخوره ؟! اگه میشه با مثال توضیح بدین که چه موقه از صفر استفاده میکنیم و چه موقه از یک!!!

محسن واژدی
سه شنبه 13 تیر 1391, 05:22 صبح
سلام
این متد دارای دو پارامتر است:
Object.Show [Modal],[OwnerForm]
Modal: پارامتری اختیاری و تعیین کننده Modal یا Modeless بودن فرم باز شده است، در modal تا بسته نشدن فرم باز شده کاربر نمیتواند به سایر فرهای برنامه دسترسی داشته باشد، برای گشودن فرم بصورت modal از ثابت vbModal یا مقدار معادل آن یعنی 1 و برای گشودن فرم بصورت modeless از ثابت vbModeless یا مقدار آن یعنی 0 استفاده میشود (از آنجایی که این پارامتر اختیاری است مشخص نکردن آن برابر vbModeless است)
OwnerForm: پارامتر اختیاری که فرم احضار کننده را با جایگزین کردن نام آن در این پارامتر مشخص میکند (بصورت پیش فرض اگر مشخص نشود، فرم احضار کننده Me یعنی فرم فعلی است)

برای مثال:

Private Sub Command1_Click()
Form2.Show
End Sub


یا

Private Sub Command1_Click()
Form2.Show vbModal
End Sub


و یا

Private Sub Command1_Click()
Form2.Show vbModal, Form3
End Sub

ayson0
سه شنبه 13 تیر 1391, 19:26 عصر
خب عزیزم واسه قسمت owner form یه مثال خوب میتونی بزنی ؟ من مبتدیم زیاد جا نیوفتاد واسم!
مثالی میخوام که کدو تو یه فرمی بنویسی ولی یه فرم دیگه احضارش کنه! (کدشو نوشتم اتفاقی نیوفتاد و همون فرمه پیش فرض احضارش کرد!!!)!!!
کاربردی نداشت این قسمت ! کمی شفاف سازی کن!!!!!

ayson0
سه شنبه 13 تیر 1391, 21:21 عصر
خب!!!!!!!! به سلامتی کسی نمیتونه این سوالو پابرهنه بره ؟!

arenaw
سه شنبه 13 تیر 1391, 21:57 عصر
شما 3 تا فرم بساز بعد این کدو از فرم 1 اجرا کن

Form3.Show
Form2.Show vbModal, Form3


میبینی که وقتی روی فرم 2 که ظاهر شده کلیک میکنی، به جای اینکه فرم 1 کی که فراخونیش کرده چشمک بزنه فرم 3 چشمک میزنه

ayson0
سه شنبه 13 تیر 1391, 22:26 عصر
تست کردم ولی اونطوری نشد که میگی!!!!!!!!!!
وقتی رو فرم دو کلیک کردم هیچ اتفاقی نیوفتاد!!!!!!!!! و وقتی رو فرم 3 کلیک کردم فرم 2 چشمک زد!!!!!! :لبخند:
همه چی چپکی شد!!!!!! (احیانا هیچ مثال به درد بخوری واسه این owner form به ذهن مبارک کسی نمیرسه؟!)!

arenaw
سه شنبه 13 تیر 1391, 23:01 عصر
وقتی شما با استایل vbModal یه فرم رو ظاهر میکنی ، تا زمانی که اون فرم بسته نشه شما نمیتونی تو فرمای دیگه بری یا کار دیگه ای کنی تا اون بسته بشه

حالا اگه تو فرم 1 بنویسی :
form2.show
form3.show vbmodal
اون فرم 2 رو ولش کن
میبینی که اون فرم 3 ای که ظاهر شده تا بسته نشه نمیتونی کاری کنی
ولی از همون چشمک زدن فرم یک میفهمی که owner اش همون فرم یکیه که دستور توش اجرا شده
ولی اون کد قبلی با اینکه دستور از تو فرم1 اجرا شده ولی owner این فرم 3 فرم 2 شده

the king
سه شنبه 13 تیر 1391, 23:14 عصر
تست کردم ولی اونطوری نشد که میگی!!!!!!!!!!
وقتی رو فرم دو کلیک کردم هیچ اتفاقی نیوفتاد!!!!!!!!! و وقتی رو فرم 3 کلیک کردم فرم 2 چشمک زد!!!!!! :لبخند:
همه چی چپکی شد!!!!!! (احیانا هیچ مثال به درد بخوری واسه این owner form به ذهن مبارک کسی نمیرسه؟!)!

این به ذهن مبارک من می رسه، سه تا فرم Form1 و Form2 و Form3 داشته باشید که فرمی که اول اجرا میشه Form1 باشه.
در Form3 یک TextBox قرار دهید با نام Text1 و در کد Form3 بنویسید :

Private Const GW_OWNER As Long = 4

Private Declare Function GetWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String) As Long

Private Sub Text1_Change()
SetWindowText GetWindow(hWnd, GW_OWNER), Text1.Text
End Sub


حالا در کد Form1 یکبار بنویسید :

Private Sub Form_Load()
Form2.Show vbModeless
Form3.Show vbModeless, Form1
End Sub

موقع اجرای کد در اون TextBox چیزی بنویسید، می بینید که عنوان Form1 که صاحب فرم Form3 است عوض میشه.

حالا کد Form1 رو تغییر دهید تا Form2 صاحب اش باشه :

Private Sub Form_Load()
Form2.Show vbModeless
Form3.Show vbModeless, Form2
End Sub


موقع اجرای کد در اون TextBox چیزی بنویسید، می بینید که اینبار عنوان Form2 که صاحب فرم Form3 است عوض میشه.
نتیجه می گیریم که Form3 بی وفا است.

ayson0
سه شنبه 13 تیر 1391, 23:15 عصر
خطاب به arenaw : این توضیحات به دردم نخورد! من چی گفتم تو چی به خوردم میدی !!!!!!!!!!!!!!!!! ( یه بار توضیحاتتو به مرحله عملی بکشونی فازش بیشتره ها)!!!!!!!!!!
vbmodal و امثالهم رو محسن توضیح داد واسم جا افتاد! سوالم یه چی دیگه بود ! !!!!!!
یه مثال توپ در رابطه با owner form میخوام! (هیچ کارایی ای نداره جز چشمک زدن که اونم چپ جواب میده !؟)! !!!!!!!!


بعدا افزود : مرسی the king . دمت گرم داداش ! من جوابمو گرفتم !!!!