PDA

View Full Version : درمورد فرم های MDI



m_kafman
جمعه 15 اردیبهشت 1385, 08:57 صبح
با سلام
دوستان، من در دلفی یک برنامه نوشتم که فرم اصلی من style اون روی MDIform تنظیم شده و
بقیه فرم هام روی MDIchild من می خوام:
1: همزمان با فرم اجرا نشن
2:بد از اجرا شدن بسته بشن
3:بد از بسته شدن بسه اونها رو دوباره show کرد
4:از همه مهمتر موقعی که فرم اصلی کوچک شد فرم های فرزند بتونن خارج از فرم نمایش داده بشن

babak869
جمعه 15 اردیبهشت 1385, 13:03 عصر
این موضوع چندین بار بحث شده .لطفا قبل از پرسش جستجو کنید :
برای نشاه دادن یک فرم فرزند از کد زیر استفاده کنید :


Var
Form2 : TForm2;
begin
Form2 := TForm2.Create(Application);
Form2.Show;

و برای بستن اون بنویسید :


Action:=CaFree;

موفق باشید

farhad110
دوشنبه 08 بهمن 1386, 09:35 صبح
با سلام. وقتی میخوام فرم فرزند رو با این کد نمایش بدم با پیغام زیر روبرو میشم:

[Error] main.pas(42): Undeclared identifier: 'Application'

Amir_Safideh
دوشنبه 08 بهمن 1386, 15:12 عصر
خوب برای این کار لازمه که اول به این مسیر بری Project>Options و بعد در تب Forms و در قسمت َAuto-Create Forms اسم فرمی رو که میخوای به صورت فرم فرزند بسازی رو به قسمت روبروش یعنی به قسمت Available Froms منتقل کنی و در مرحله بعد یه پروسیجر مثلا به شکل زیر بسازی :

private
{ Private declarations }
procedure CreateChild(const Name: string);

در مرحله بعد بدنه پروسیجر رو به این صورت بنویس :

Procedure TMDIForm.CreateChild(Const Name: String);
var
Child: TChildForm;
begin
Child := TChildForm.Create(Application);
Child.Caption := Name;
end;

فقط این مورد رو متذکر بشم که در تعریف بدنه پروسیجر ما یک متغییر تعریف کردیم به نام TChildForm که اون رو میبینید شما باید به جای TChildForm اسم فرم خودتون رو قرار بدید مثلا اگر شما اسم فرم خود را Child گذاشتید باید به جای متغییر من TChild رو قرار بدید
در مرحله بعد پروسیجر رو اجرا کن که در این مثال من در رویداد کلیک یک دکمه قرارش دادم و شما هر جایی که مایل باشید میتونید کد رو قرار بدید :

procedure TForm1.Button1Click(Sender: TObject);
begin
CreateChild('My MDIChild form');
end;

----------------
ارادتمند

vcldeveloper
سه شنبه 09 بهمن 1386, 03:10 صبح
وقتی میخوام فرم فرزند رو با این کد نمایش بدم با پیغام زیر روبرو میشم
در بخش uses یونیتی که کد را در آن می نویسید، باید یونیت Forms وجود داشته باشد تا Application قابل شناسایی باشه.

farhad110
سه شنبه 09 بهمن 1386, 07:57 صبح
دقیقا مشکل همین بود. چون من forms رو از قسمت uses حذف کردم و tntforms رو اضافه کرده بودم