مشاهده نسخه کامل
: ایجاد دو فرم در دلفی
meghdad23
23-07-2006, 10:43
با سلام
من می خواهم در برنامه ام دو فرم داشته باشم ولی وقتی فرم 2 را ایجاد می کنم و در فرم یک می خواهم بنویسم که فرم 2 ظاهر شود پیغام خطا می دهد لطفا انجام این کار را برایم توضیح دهید
NoneForce
23-07-2006, 10:57
سلام
ميشه پيغام خطا را ذكر كنيد
مرد مباح
23-07-2006, 12:02
ميشه لطفا فرماني رو كه استفاده كردين هم بنويسيد؟
سلام
احتمالآ اسم فرم رو درست نمي نويسي
meghdad23
24-07-2006, 17:07
با عرض سلام خدمت همه دوستان
ببینید من می خواستم اگر برای شما زحمتی نیست طریقه ایجاد دو فرم و استفاده از آن را برایم بنویسید
مثلا در ویزوال بیسیک برای ظاهر شدن فرم دو می نوشتیم form2.show و فرم دو ظاهر می شد
حالا طریقه اینکار در دلفی را برایم بنویسید
ببخشید اگه من تازه کار هستم
meghdad23
MasterData
24-07-2006, 18:46
فرم دوم رو توي فرم اول use كنيد و با متد formname.show يا formname.showmodal اون رو نمايش بدين
مرد مباح
24-07-2006, 18:51
معمولا از ShowModalاستفاده ميشه.
فرمان Show باعث ميشه كه فقط نشون داده بشه و يا كار نميكنه و يا فرم اوليه نيز فعال باقي ميمونه.
سلام
این دو فرمان فرق دارند
اگر خطا میده که اسم فرم رو اشتباه نوشتی
اما اگر درست نوشتی یه بار خطا میده بعد اگر ok
رو زدی درست میشه.اون خطا نیست بلکه می پرسه
می خواهی این فرم رو به این فرم معرفی کنم؟
خوب فرمان show فقط اون فرم رو نمایش میده
اما showmedal اینه که تا وقتی که فرمی رد نشده
به فرم های دیگه نمی تونی بری! معمولآ برای پسور یا
گذاشتن رمز و قفل استفاده میشه.
سلام
سولجر عزيز يه سوالي دارم كه به موضوع اين تاپيك مربوط ميشه
من براي اينكه از چند فرم استفاده كنم اين روش رو استفاده مي كنم لطفا كاركرد هاي اين دستورات رو در صورت امكان توضيح بدين و بگين كه ايا درست هست كه از اين روش استفاده بشه يا نه؟
بعد از اينكه چند فرم رو ايجاد كردم به منوي پروژه رفته و گزينه اپشن رو انتخاب مي كنم
در پنجره ظاهر شده فرم اصلي ام رو از كومبو باكس انتخاب مي كنم و در قسمت زير همون هم بقيه فر م ها رو به سمت راست منتقل مي كنم ( با اين عمل فرم هاي مذكور فكر كنم در زمان اجراي برنامه ساخته نخواهند شد )
حالا هر جا كه به فرم مورد نظرم احتياج داشته باشم دستور ساخت اونو ميدم و همزمان فرم اصلي رو غير فعال مي كنم
بعد از استفاده از فرم با دستور ديستروي هندل ويندو فرم رو از بين برده و فرم اصلي رو دوباره فعال ميكنم
حالا توضيح بدين اين دستور ساخت و ديستروي چه كار ها مي كنه و ايا اين روش درست هست يا نه ؟
ممنون
سلام
اين روش رو خودت استفاده مي كني؟
يعني به ذهنت رسيده يا اينكه كسي بهت گفته؟
اين روش استاندارد نيست.
براي چي اينكارو كني.وقتي همه فرم ها رو ساختي
با اين دستور show نمايش بده. از visible هم مي توني
استفاده كني.كه اول فقط يه فرم مشخص باشه بعد
با دستور show نمايش و با hide غير قابل نمايش كن.
اگر هم با همين روشي كه گفتم مشكلي پيش اومد
بگو.كه من در خدمتم.
Mahmood_N
26-07-2006, 20:46
سلام ...
با اجازه از Soldier عزیز ...
دوست من این روشی که شما استفاده می کنید بیشتر برای فرمهای MDI استفاده می شه ، یعنی فرمهای فرزند و والد ...
مثلا برنامه فوتوشاپ نمونه اي از فرمهاي MDI هستش ( اگه توجه كرده باشيد تمام پنجره هاي آن براي ويرايش عكس در درون پنجره اصلي نمايش داده مي شوند )
ولي براي برنامه هاي معمولي بايد از همون دستورات Show يا Show Modal استفاده بشه و براي بستن فرم هم از دستور Close یا Hide ( که فرم رو پنهان می کنه ) ...
موفق باشید ...
سلام
من هم يه پستي دادم.گفتم توي ديد باشه.
10 حتمآ بخونيدش.از آقا محمود هم تشكر مي كنيم
كه توي بحث ها شركت مي كنه
meghdad23
26-07-2006, 23:53
با سلام
با تشكر از همه دوستان مشكل من تا اطلاع ثانوي حل شد
متشكرم
meghdad23
سلام
اره اين روش به ذهنم خطور كرد چون تنها به اين روش مشكلم حل شد
من وقتي از چند فرم استفاده مي كنم وقتي كه فرم دوم رو نمايش ميدم اگه مكان فرم رو با موس جابجا كنم دفعه ديگه كه دستور نمايش صادر بشه فرم در همون جاي قبلي كه با موس جابجا شده قرار ميگيره كه من اينو نميخاهم
من مي خواهم كه فرم در وسط مانيتور ظاهر بشه يا كلا همون مكان اوليه
يا حق
Mahmood_N
28-07-2006, 01:03
سلام
اره اين روش به ذهنم خطور كرد چون تنها به اين روش مشكلم حل شد
من وقتي از چند فرم استفاده مي كنم وقتي كه فرم دوم رو نمايش ميدم اگه مكان فرم رو با موس جابجا كنم دفعه ديگه كه دستور نمايش صادر بشه فرم در همون جاي قبلي كه با موس جابجا شده قرار ميگيره كه من اينو نميخاهم
من مي خواهم كه فرم در وسط مانيتور ظاهر بشه يا كلا همون مكان اوليه
يا حق
سلام ...
دوست من برای اینکه فرم خدتون رو نمایش وسط مانیتور نمایش بدید باید قبل از کد مربوط به نمایش فرم یه کد دیگه بنویسید :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این طوری خاصیت مکان فرمتون قبل از نمایش به وسط صفخه تغییر پیدا می کنه ...
و اگه می خواید که فرمتون وسط فرم اصلی نشون داده بشه کد بالا رو به صورت زیر تغییر می دید :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه در قسمت خصوصیات فرمتون جلوی گزینه Position رو ببینید ، می تونید بقیه دستوراتش رو هم مشاهده کنید ...
اگه بازم مشکلی بود بگید ...
موفق باشید ...
سلام
يه پروپرتي هم هست به همين اسم.
فكر كنم اگر اون رو قبل از اجرا تنظيم كني
ديگه احتياجي نباشه كه اين كارا رو هم بكني.
Mahmood_N
28-07-2006, 20:33
سلام ...
درسته ... ، چنين پروپرتي اي هست ...
كد بالا هم در واقع همون پروپرتي رو تنظيم مي كنه ...
ولي اگه فقط اون رو تنظيم كني براي يك بار همون جوري نشون داده مي شه و براي اين كه هميشه وسط دسكتاپ نشون داده بشه بايد در زمان نمايش فرم اون پروپرتي رو تنظيم كني ...
موفق باشيد ...
مرد مباح
28-07-2006, 22:15
دوستان.
من وقتي يك بار فرم اصلي برنامه رو مخفي و ظاهر ميكنم , ديگه ديده نميشه.
يعني در حالتي كه مثلا 2 تا ويندوي ديگه كه يكي مثلا Mycomputer و ديگري Calculator است اين كار رو انجام ميدم , برنامه روي اونا نمياد و زيرشون قرار ميگيره.
چرا؟ و چيكار بايد بكنم؟
Mahmood_N
28-07-2006, 22:25
سلام ...
فرمتون رو از طريق Show نشون می دید یا Show Modal ؟
اگه از طریق Show Modal نشون بدید و بعد اون رو مخفی کنید نمی تونید به اون فرم اول دسترسی داشته باشید ...
برای این که فرم اولتون نشون داده بشه باید فرم دوم رو ببندید ...
اگه منظورتون چیز دیگه ای بود بگید شاید بتونم کمکتون کنم ...
موفق باشید ...
سلام
دوستان منظور من چيز ديگه اي است
يه بار امتحان كنيد مي بينيد
دو تا فرم بسازيد . با كليك كردن روي دكمه يك كه بر روي فرم يك قرار داره فرم دوم ظاهر ميشه و فم اول هم ديسيبل ميشه . حالا
بر روي فرم دوم كليك كرده و مكان اون رو تغيير دهيد ( پنجره رو جابجا كنيد )
حالا فرم دوم رو ببنديد . فرم اول فعال ميشه . دوباره روي دكمه كليك كنيد تا فرم دوم باز ظاهر بشه . ميبينيد كه فرم در وسط
مانيتور نيست بلكه در همون مكانيه كه شما دفعه پيش تغيير مكانش داديد .
تمام اينا با دستور showmodel انجام دادم ببينيد براي شما هم اينطوريه يا نه
در ضمن من پروپرتي پوزيشن اونو هم تغيير دادم
مي بينيد كه اون كاري رو كه من كردم بهتر از اين دستوراتيه كه شما گفتيد
يا حق
Mahmood_N
28-07-2006, 22:55
بازم سلام ...
دوست من شما اون كاري رو كه من گفتم نكرديد ... !!!
شما بايد در موقع نمايش فرم اون پروپرتي رو تنظيم كنيد ...
همون طوري كه بالا براتون توضيح دادم ...
من مطمئنم كه درسته ( قبل از اينكه اون پست رو بدم خودم امتحانش كردم تا مطمئن بشم )
شما اون روشي رو كه من كفتم رو انجام بديد ، حتما مي شه ...
در ضمن :
اون روشي كه شما استفاتده مي كنيد منطقي نيست و نبايد از اون روش استفاده كنيد ...
دستور Destroy ساختار فرم رو بهم می زنه ( معنیش هم می دونید چی می شه ).
یک بار دیگه امتحان کنید ...
منتظر جوابتون هستم ...
موفق باشید ...
مرد مباح
29-07-2006, 10:58
من فرم اصلي برنامه رو مخفي مي كنم.
نه يك فرم زير شاخه.
يعني يك برنامه ديگه رو از توي برنامم اجرا ميكنم و تا زماني كه اون برنامه در حال اجراس, فرم برنامم مخفيه.
بعدش كه نشونش ميدم زير همه پنجره ها مياد.
در اين شرايط فقط بايد از Show استفاده كرد
مرد مباح
29-07-2006, 11:01
من فرم اصلي برناممو مخفي ميكنم. نه يك فرم كمكي و اضافه.
يك برنامه ديگه رو توي برنامم ران ميكنم و تا وقتي اون اجراس, من فرم برناممو مخفي ميكنم.
وقتي نشونش ميده , پشت همه فرمهاست.
سلام
مرد مباح وقتي كه مي خواهي فرم رو نشون بدي بايد
بعد از نمايش فر سطح فرم رو بالا بياري. من يه مثال مي زنم!
Form2.BringToFront;
بعد از نمايش. اسم فرم رو هم خودت تغيير بده.
راستي فقط در مورد درستور Show كار مي كنه.
امتحانش كردم.100% جواب ميده. موفق باشي
سلام
من امتحان كردم.
اگر قبل از نمايش فرم فرم را به جاي اول تغيير دهيد
مشكل حل ميشه. اگر دوست نداريد كه وسط صفحه باشه
و حتمآ جاي اولش باشه.يه جاي اينكه پزيشن رو تغيير بدي
Left,Top رو تغيير بده و به عددي كه دوست داري تغيير بده!
توضيح بيشتر :
قبل از اجرا وقتي فرم رو تنظيم كردي Left,Top رو بنويس و بگذارش قبل
از اينكه فرم رو نمايش بدي. اميد وارم كه خوب متوجه شده باشي
سلام
به نظر شما اين ظلم نيست.
بابا يه پست بديد ببينيم چي شده؟
درست شد؟خراب شد؟
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.