PDA

نسخه کامل مشاهده نسخه کامل : برنامه هاي چند فرمي



siminsob
12-09-2007, 00:18
من داده اي را در فرم يك و دو تعريف كردم.اين داده در رويداد Onclickچند دكمه در فرم2 مقدارهاي متفاوت مي گيرد.و در فرم 1 در عبارت Case Of اين داده مورد بررسي قرار دادم.اما در اجرا هر كدام از رويدادهايي كه در فرم 2 هم كه اتفاق بيافتد فقط مقدار رويداد اول به آن داده داده مي شود.
چه كار كنم كه بر حسب رويدادي كه اتفاق مي افتد به آن داده مقدار داده شود؟

مرد مباح
12-09-2007, 09:58
به انجمن ما خوش اومدی
روند کاریتو توضیح میدی ؟
یعنی میگی این Case Of رو برای چی نوشتی تا شاید بتونم کمکی کنم؟

siminsob
12-09-2007, 14:26
procedure TForm6.Label2Click(Sender: TObject);
begin
case form11.newgame of
nomaze: form12.Show;
box: form13.show;
tunnel: form14.show;
spiral: form15.show;
blockade: form16.show;
twisted: form17.show
اين كد رو در برچسب2 فرم 6 نوشتم.

siminsob
12-09-2007, 14:37
.procedure TForm11.Label2Click(Sender: TObject);
begin
form11.Hide;
form18.show;
newgame:=nomaze;
end;
procedure TForm11.Label3Click(Sender: TObject);
begin
form11.Hide;
form19.show;
newgame:=box;
end;
procedure TForm11.Label4Click(Sender: TObject);
begin
form11.hide;
form21.show;
newgame:=tunnel;
end;
اين كد هم در فرم11 برنامه ام نوشتم.

siminsob
12-09-2007, 14:49
public
newgame:(nomaze,box,tunnel,spiral,blockade,twistwd );
اين هم در بخش عمومي

حالا هر وقت روي هر كدام از برچسب هاي فرم11 كه كليك كنم و بعد بر روي برچسب2 فروم 6 كليك كنم فقط دستور مربوط به مقدار اولين رويداد فرم 11 اجرا مي شود
در صورتي كه من مي خوام روي هر رويدادي كه كليك مي كنم دستور مربوط به همان مقار رويداد اجرا شود

من بايد چطور اين كد رو تغيير بدم تا درست اجرا شه؟

مرد مباح
13-09-2007, 10:56
اینجوری همه چیز به نظرم خوب میاد.
اگه میتونی Source برنامت رو لینک بده تا دانلود کنم و اصلاحات رو روش انجام بدم و بعدش بگم مشکلت کجا بوده.
خوبه ؟

siminsob
13-09-2007, 13:13
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:15
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
[/CODE]

siminsob
13-09-2007, 13:17
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:18
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:27
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:27
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:28
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:30
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:31
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:31
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siminsob
13-09-2007, 13:33
فرمهاي 12 13 14 15 16 17 هم ايجاد كردم.

F A R H A D
13-09-2007, 18:31
سلام
siminsob عزیز جای شکرش باقیه که فرمهای 12 13 14 15 16 17 رو بی خیال شدی، اگر برنامه رو up میکردی راحت تر میشد کمک کرد.
چون همونطور که مرد مباح گفتن در ظاهر همه چیز خوب به نظر میاد.

soldier
13-09-2007, 20:48
بابا چه خبره...

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

اما باید بگم هنوز پست هات رو نخوندم!

مرد مباح
14-09-2007, 11:11
خوب دوست عزیز.
مشکل پیدا شد.

مشکل شما اینه که هر متغیر رو در سطح یک یونیت معرفی کردی و به صورت کامل و در سطح پروژه از اون استفاده نمیکنی.
برای مثال شما در Form11 در بخش Public دوباره خط newgame:(nomaze,box,tunnel,spiral,blockade,twisted ) را نوشتید که به همین دلیل جواب نمیگیرید.
این خط رو پاک کنید و در بخشهایی که برای مثال نوشتی newgame=box کد رو به صورت زیر تغییر بده و این تغییر رو در تمامی تونیتهایی که این کارو کردی منتقل کن :

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

اینجوری یونیت شما در سطح کل پروژه تغییر میکنه و برنامه درست میشه.

ضمنا لطف کنید در صورتی که حجم کدها بالا هست دیگه این کار رو نکنین که توی اینجا همشو پست بدین
این هم سه دلیل داره :
1. حجم زیادس کد میزارین که خیلیا حتی خود من حاضر به خوندن همه اونا نیستند. چون خیلیاش به درد نمیخوره
2. تاپیک رو خیلی شلوغ میکنه
3. ممکن هست که در جایی نیاز به تغییراتی بر روی فرم هم باشد که اون اطلاعات در برنامه به این صورت نیامده.

بنابراین حتما دفعه بعدی لینک برنامه خودتون رو UpLoad کنید.

siminsob
14-09-2007, 11:48
جه جوري لينكش آپلود كنم؟

مرد مباح
14-09-2007, 11:59
الان که جوابتون رو گرفتین ، لازم نیست دیگه آپ کنید.
ولی برای UpLoad از سایتهای دیگه استفاده کنید.
چند نمونه رو براتون در زیر مینویسم.

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

siminsob
14-09-2007, 12:12
من چيزي كه گفتيد رو امتحان كردم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید; اما از box اشكال مي گيره

مرد مباح
14-09-2007, 12:23
به نظر من به جای اینکه از مقادیر پارامتری استفاده کنید ، بهتره یا از مقادیر کاراکتری و یا عددی استفاده کنید که اینجوری نشه.
یعنی اگه جنس NewGame رو از جنس Integer قرار بدی ، دیگه این مشکل پیش نمیاد.
اگه میخوای پارامتری کار کنی باید توید بخش Type اونارو معرفی کنی.

موفق باشی.

siminsob
14-09-2007, 12:33
ميشه از نوع string معرفي كنم اخه ميخوام بايد متغير به انها نسبت بدم؟

siminsob
14-09-2007, 12:41
همه ي متغييرها رو در بخش public از نوعstringمعرفي كردم.حالا از case newgame of اشكال مي گيره.

siminsob
14-09-2007, 12:43
برنامه و موضوعشو توضيح بدم يا نه متوجه شديد؟

siminsob
14-09-2007, 12:58
من دارم بازيsnake مي نويسم.
فرم6 سه تا كليد داره كه اولي وارد بازي مي شه دومي تنظيمات بازي هستش وسومي دسترالعمل بازيه.
وقتي رو كليد اول مي زني بر حسب مقداري كهnewgameتو فرم11 گرفته يكي از زمينه هاي بازي باز مي شه يعني فرم 12 يا13 يا14 15يا 16 يا 17.

وقتي كليد دوم رو مي زنيم فرم7 باز مي شه كه دو تا كليد داره اولي زمينه ي بازي و دوي سرعت بازي.
يه كليذ برگشت به فرم قبل هم داره
وقته كليذزمينه ي بازي رو مي زني فرم11 باز مي شه كه 6ت كليد داره ويه كليد برگشت به فرم قبل.روي هر كدوم از كليدها كه بزني يه فرم باز مي شه كه نشان بده اين زمينه انتخاب شد.يعني فرم 18 19 20 21 22 23
كليد سرعت هنوز فرم بعدي نداره

Mavix
14-09-2007, 13:00
با سلام

دوست عزیز برو سایت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید همون صفحه اول درون باکس حالت زیپ شده برنامه ات رو بذار و upload کن تا راحت جوابتو بگیری.

siminsob
14-09-2007, 13:58
وقتي رفتم به اون ادرسها برنامه ام رو Brows كردم بعدش چكار كنم؟

siminsob
14-09-2007, 14:27
مرد مباح مشكلم تا حدودي رفع شد از شما و بقيه دوستان بينهايت سپاسگزارم.
فقط يه مشكله كوچيك هست كه حتي وقتي كه من نميرم زمينه ي بازي رو انتخاب كنم و وارد بازي مي شم خودش اولين زمين بازي رو انتخاب مي كنه
چرا اينطوري مي شه ؟
در حقيقت خودم مي خواستم اينطوري بشه اما اين خودش شده .
مي خوام دليلشو بدونم تا ياد بگيرم.

F A R H A D
14-09-2007, 15:05
سلام
در متغیرهای پارامتری در صورتی که متغیر رو مقدار دهی نکنی، به طور پیش فرض اولین مقدار به اون نسبت داده میشه.

siminsob
14-09-2007, 15:25
ممنونم.farhad_g1