ورود

View Full Version : افزایش سرعت اجرای برنامه؟



DarkACE
یک شنبه 03 اردیبهشت 1391, 13:18 عصر
سلام دوستان

چطور می تونم وقتی که یه برنامه رو نوشتم که مثلاً 20-25 فرم داره از ساخته شدن و اجرای با هم همه ی اونها جلوگیری کنم و فقط زمانی که لازم بودن ساخته بشن و وقتی هم که کار تمام شد بسته بشن و حافظه رو آزاد کنن.

مرسی.

AliReza Vafakhah
یک شنبه 03 اردیبهشت 1391, 14:49 عصر
به منو Project -> Options بروید و سپس در پنجره باز شده به قسمت Forms رجوع کنید . در این قسمت دوتا List هست Auto-Create Forms و Available Forms حالا پنجره هایی رو که نمی خواهید خود کامپایلر به صورت خودکار ایجاد کنه را به قسمت Available Forms انتقال دهید. (البته می تونید به صورت دستی هم این کار رو در فایل dpr پروژتون انجام دهید.)

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

مثل زیر:

فرم 2 در لیست Available Forms است

جهت ساختن:

procedure TForm1.Button1Click(Sender: TObject);
begin
if (not Assigned(Form2)) then
Application.CreateForm(TForm2, form2);
Form2.Show
end;

و جهت حذف از حافظه : (کد در رویداد OnClose فرم 2)

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FreeAndNil(Form2);
end;