mohsenrahx
چهارشنبه 21 آذر 1386, 23:06 عصر
سلام
من در برنامه ای که نوشتم یک فرم مادر(Form1) دارم که خاصیت formstyle اون fsMDIForm است و دو فرم دیگر(form2,form3) دارم که خاصیت formstyle آن fsMDIChild است .
در سربرگ poroject گزینه option را انتخاب می کنم. و در قسمت mainform ، فرم مادر را به برنامه معرفی می کنم یعنی mainform من ، form1 می باشد. و دو فرم دیگر را (form2,form3) در قسمت Available Form قرار می دهم.
دو باتون روی فرم مادر (form1) می گزارم که باتون اول فرم 2 و باتون دوم فرم 3 را نمایش می دهد.(چطور نمایش می دهد؟) من برای نمایش فرم های فرزند از این تابع استفاده می کنم.
[procedure MainFormCreateChildForm(chi:smallint);
var ChildForm2: TForm2;
ChildForm3: TForm3;
begin
if chi=1 then
Childform2 := TForm2.Create(Application);
if chi=2 then
ChildForm3 := TForm3.Create(Application);
end;
و در باتون اول می نویسم
MainFormCreateChildForm(1);
و در باتون دوم می نویسم
MainFormCreateChildForm(2);
خوب کدا درست کار می کنند و مشکلی باهاشون ندارم . (یعنی هر باتون را کلیک می کنم، فرم موبوط به خود را به درستی نمایش می دهد) اما و قتی که یک فرم به نام رمز عبور را ایجاد می کنم و اونو در قسمت poroject گزینه option به عنوان mainform انتخاب می کنم( تا اول اون در هنگام اجرای برنامه بالا بیاد) و در قسمت باتونی که روی فرم رمز وجود دارد می نویسم که اگر پسورد درست بود فرم یک من که همون فرم مادر بود نمایش داده بشه (form1.show) . خوب تا اینجا اگر برنامه را اجرا کنم و پسورد درست باشد فرم مادر نمایش داده می شود.
مشکل اینجاست اگر یادتون باشه من دو تا باتون داشتم که روی فرم مادر بود و با فراخوانی تابعی که در فرم مادر بود فرم 2 و 3 نمایش داده می شد هنگامی که (بعد از عبور از فرم پسورد و نمایش فرم مادر) این دو باتون را کلیک می کنم این ارور (Eror) را می دهد.
Can not create form. No MDI forms are currently active
با تشکر محسن
من در برنامه ای که نوشتم یک فرم مادر(Form1) دارم که خاصیت formstyle اون fsMDIForm است و دو فرم دیگر(form2,form3) دارم که خاصیت formstyle آن fsMDIChild است .
در سربرگ poroject گزینه option را انتخاب می کنم. و در قسمت mainform ، فرم مادر را به برنامه معرفی می کنم یعنی mainform من ، form1 می باشد. و دو فرم دیگر را (form2,form3) در قسمت Available Form قرار می دهم.
دو باتون روی فرم مادر (form1) می گزارم که باتون اول فرم 2 و باتون دوم فرم 3 را نمایش می دهد.(چطور نمایش می دهد؟) من برای نمایش فرم های فرزند از این تابع استفاده می کنم.
[procedure MainFormCreateChildForm(chi:smallint);
var ChildForm2: TForm2;
ChildForm3: TForm3;
begin
if chi=1 then
Childform2 := TForm2.Create(Application);
if chi=2 then
ChildForm3 := TForm3.Create(Application);
end;
و در باتون اول می نویسم
MainFormCreateChildForm(1);
و در باتون دوم می نویسم
MainFormCreateChildForm(2);
خوب کدا درست کار می کنند و مشکلی باهاشون ندارم . (یعنی هر باتون را کلیک می کنم، فرم موبوط به خود را به درستی نمایش می دهد) اما و قتی که یک فرم به نام رمز عبور را ایجاد می کنم و اونو در قسمت poroject گزینه option به عنوان mainform انتخاب می کنم( تا اول اون در هنگام اجرای برنامه بالا بیاد) و در قسمت باتونی که روی فرم رمز وجود دارد می نویسم که اگر پسورد درست بود فرم یک من که همون فرم مادر بود نمایش داده بشه (form1.show) . خوب تا اینجا اگر برنامه را اجرا کنم و پسورد درست باشد فرم مادر نمایش داده می شود.
مشکل اینجاست اگر یادتون باشه من دو تا باتون داشتم که روی فرم مادر بود و با فراخوانی تابعی که در فرم مادر بود فرم 2 و 3 نمایش داده می شد هنگامی که (بعد از عبور از فرم پسورد و نمایش فرم مادر) این دو باتون را کلیک می کنم این ارور (Eror) را می دهد.
Can not create form. No MDI forms are currently active
با تشکر محسن