PDA

View Full Version : مشکل کمک کمک



internat
چهارشنبه 20 مهر 1384, 10:19 صبح
یه پروژه تو دلفی تو دستمه که چند تا مشکل ریز سرکارم گذاشته
در یک فرم mdi چگونه می توان فرم child را احضار کرد با توجه به این که بنده کد
form1.show را هم استفاده کردم ولی پیغام خطا می دهد
در ضمن در رویداد onclose فرم فرزند هم کد Action := catree نوشتم تا با کلیک بر روی دکمه ضربدر فرم بسته شود
بعد از این مرحله فرم را دیگر نمی توانم احضار کنم

سوال دوم اینکه در همین برنامه که mdi می باشد می خواهم ابتدا فرم login که خاصیت child ندارد ظاهر شود سپس بعد از گرفتن نام کاربری و کلمه رمز فرم login بسته و فرم mdi ظاهر شود لازم به ذکر است که اگر بخواهم فرمی غیر از MDI را نشان دهم ظاهر می شود البته به شرطی که childنباشد ولی این موضوع در مورد فرم MDIصادق نیست
منظور من فقط عملیاتی که باید انجام داد تا هنگام کلیک دکمه تأیید فرم لوگین بسته و فرم mdi ظاهر شود منظورم اینه که فرم لوگین و mdi طراحی شدن و شرط و شروطشون هم درست کار می کنه فقط تو احضار کردنشون مشکل دارم.
دوستان ممنون اگر می شود مشکلم را حل کنید

szabeh
چهارشنبه 20 مهر 1384, 16:21 عصر
mdi را مین فورم کن و در رویداد onactive آن دستور loginform.showmodal را بنویس.

Naficy
چهارشنبه 20 مهر 1384, 16:23 عصر
1- کد Action:=caFree باعث تخریب فرمتان در حافظه می شود. و بعد از انجام آن باید دوباره فرم را Create کرد. نمی تونین از Action:=caHide استفاده کنین؟
2- من درست متوجه نشدم چه مشکلی دارین.
اما به طور کلی در چنین مواردی باید تمام فرمها رو از حالت به قول بچه ها AutoCreate درآرین. یعنی اصلا از Application.CreateForm استفاده نکنین. به جاش از چنین کدی استفاده کنین:

Form1:=TForm1.Create(Application);

پی نوشت: البته اگر از روشی که همین الآن دیدم دوستمون گفتن برین، نیازی به کاری که گفتم نیست. (منظورم قسمت دوم جوابمه) البته روشهای من و ایشون فرقهای اساسی دارن...!

Kamyar.Kimiyabeigi
چهارشنبه 20 مهر 1384, 20:50 عصر
شما میتونین از کد زیر هم استفاده کنین


try
Application.createForm(TForm1, Form1);
//your code
Form1.ShowModal;
finally
freeAndnil(Form1);
end;

internat
دوشنبه 25 مهر 1384, 07:30 صبح
ممنون و متشکر