PDA

نسخه کامل مشاهده نسخه کامل : استفاده از متغییر بجای نام فرم



59bahman
25-06-2010, 14:05
با سلام و عرض ادب و تبریک ولادت امیرالمومنین(ع)
مشکلی دارم که میخوام به عنوان نام فرمها از مقدار یک متغییر استفاده کنم ولی راهشو نمیدونم یا حتی نمیدونم که میشه یا نه؟؟؟
مثلا میخوام بجای form1.show یک متغییر که قبلا تعریف کردم و مقدارش X=form1 است باشه ،مثلا برای تداعی عرض میکنم مثل X.show .
ممنون میشم اساتید سریعتر جواب بدند.

!Plus
25-06-2010, 14:46
اول باید یه شی از نوع Form تعریف کنی و بعد اون رو نسبت بدیش به فرمی که داری...
بعد هم هر بلایی سر اون شی بیاری سر فرمت هم میاد...!
مثلاً :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدموفق و پیروز باشی...! :46:

تشکر یادت نره...!(منظورم کلیک کردن رو دکمه تشکره...!) :20:

59bahman
25-06-2010, 15:57
ممنون از اینکه به این سرعت جواب دادید.
ولی تو این روش من چطوری میتونم یک نام فرم بسازم و تو متغییر فرم قرار بدم؟
منظورم اینه که A=1 و B=form حالا چجوری ایندوتا که یکیشون عدده و یکیشون متنه را سرهم کنم و تو متغییر فرممون مقدار بدم؟
چون اینا رو اگه با & بچسبونم باز متن میشن؟

!Plus
25-06-2010, 16:44
متأسفانه ویژوال بیسیک چیزی برای تبدیل متن به Form نداره...!

کلاً روشت غلطه...

تو می خوای یه فرم جدید به صورت پویا بسازی ، درسته... ؟

اگه منظورت همینه ، بگو تا ادامه بدم...!

59bahman
25-06-2010, 17:28
مجددا ممنونم برای عنایتتون.
کل ماجرا اینه که من میخوام n تا فرم را بصورث تصادفی باز کنم،یعنی یک تابع دارم که عدد تصادفی میده که میخوام این عددو بچسبونم به کلمه form و فرم شماره مورد نظر را باز کنم.
اگه الگوریتم دیگه ای میتونید پیشنهاد بدید متشکر میشم .(غیر از روشهای شرطی که اگه فلان عدد اومد فلان فرمو باز کن) .

Morteza561
25-06-2010, 18:30
خوب این چه کاریه؟

اگر که تعداد فرم هاتون کمه شما میتونید همه فرم ها رو بسازید و با اومدن اون عدد همون فرم رو باز کنید.

اما اگر زیاده من یه پیشنهاد دارم. خودم هم قبلا همین کار رو کرده بودم اما توی 2 تا فرم.

اگر فرق این فرم هایی که انتخاب میشند با هم فقط سر این عدده (مثلا اگر 1 اومد توی فرم یک تکست باکس باشه اگه دو اومد دوتا و تا آخر) شما باید یه فرم بسازید (اگر باید با انتخاب عدد تصادفی چند فرم باز شه چندتا فرم بسازید) بعد این عدد رندوم رو توی یک ماژول ذخیره کنید و با باز شدن اون فرم(ها) این عدد رو بگیرید و ادامه ی کار رو انجام بدید.

اگر منظورتون کارهای بالا نیست در مورد برنامتون بیشتر توضیح بدین تا بتونیم بهتر کمکتون کنیم.

!Plus
25-06-2010, 19:23
تا اونجایی که من میدونم و بلدم... این کار رو فقط توی فرم های MDI میشه انجام داد...! یعنی میشه به صورت پویا براشون Child درست کرد...! :27:

ولی من اون کد رو که برا MDI ه رو برات میذارم...! مثلاً این...! :

' یه فرم MDI به پروژت اضافه کن ، با یه فرم معمولی و خاصیت MDIChild ش رو برابر True قرار بده!
' بعد هم برو StartUp پروژت رو MDIForm1 کن!
' این کد ها رو هم تو MDIForm ت ، کپی کن!


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداگه چیز تازه ای پیدا کردم ، خبرت می کنم...! :46:


موفق باشی...! :20:

Dark.Lord
25-06-2010, 21:18
این سورس یک روبات مسنجر هست و قابلیت چت هم زمان با n نفر را دارد،
برای هر شخص یک فرم جداگانه باز می کند،
فکر می کنم این سورس به کارتون بیاد...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

59bahman
25-06-2010, 23:07
دوستان با سپاس بیکران
dark.lord عزیز کارو خیلی حرفه ایش نکن به ما آماتورا هم رحمی بکن:31:
من اینجای کار گیر کردم که اگه بشما یک عدد بدم و متناسب با این عدد یک فرم داشته باشیم چطوری اون فرم رو باید show کنیم.
مثلا A=3 (عدد مورد نظر) و حالا میخوام فرم form3 را show کنم .راه حل استاد plus فکر کنم بشه ولی منه بیسواد از mdi سر در نمیارم.:41:
البته از فرمایش مرتضی جان سر در نیاوردم؟؟؟!!!

Dark.Lord
26-06-2010, 01:18
نمی شه از شرط استفاده کرد؟
یک نمونه براتون نوشتم...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Morteza561
26-06-2010, 09:51
ببین دوست عزیز، شما می خوای با این عدد 3 توی فرمت یه کاری بکنی دیگه؟ مگه نه؟ مثلا می خوای بگی اگه 3 شد فرم 3 رو که توش یک لیبل داره به نام 333 نمایش بده. (برای راحتی کار از ماژول بی خیال میشیم) پس میتونی دو تا فرم درست کنی. بعد بهش بگی هر وقت فرم دوم لود شد اون مقدار تصادفی رو از تو فرم 1 به فرم 2 بدی و تو لیبل نمایش بده. برنامش رو برات نوشتم تا بهتر متوجه بشی:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید ...

!Plus
26-06-2010, 12:38
بالاخره فهمیدم...!؟! :31:

دوتا فرم به پروژت اضافه کن و بعد توی فرم اول این کد ها رو کپی کن...! :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددیگه فکر کنم مشکلت حل شد...! :20:

مشکل اون یکی این بود که فرم جدید از روی فرم اول می ساخته می شد و فرم جدید تمام خواص و... رو از فرم اول به ارث می برد...!
توی رویداد فرم اول هم دستور این بود که دوباره از روی فرم اول یه فرم دیگه بساز...! این باعث می شد که فرم جدید که ساخته میشه همون دستور رو اجرا کنه و یه فرم جدید بسازه ، و هر فرم که ساخته می شد ، دوباره یه فرم دیگه می ساخت و... تا بینهایت این کار ادامه پیدا می کرد! به خاطر همین حافظه پر می شد و Runtime ویژوال بیسیک ارور می داد!

ولی اینجا دیگه اون مشکل برطرف شده...! :27:

موفق باشی...! :46:

تشکر یادت نره...! :20:

59bahman
26-06-2010, 15:14
خیلی ممنونم از همه دوستان مشکلم کاملا مرتفع شد.
به امید اینکه علمتون روز بروز متعالی بشه.