F
fstao
Unregistered / Unconfirmed
GUEST, unregistred user!
关于MDI的问题,假如Form1的FormStyle为“fsMDIForm”,Form2的FormStyle为“fsMDIChild”,而Form3为“fsMDIChild”,Form2和Form3的
属性WindowState都是为wsMaximized。
在Form1添加Button1和Button2,Button1的onClick和OnClose事件分别为:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not assigned(form2) then
begin
form2 := TForm2.Create(Self);
form2.Show;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
form2:=Nil;
end;
Button2的其onClick和OnClose事件分别为:
procedure TForm1.Button2Click(Sender: TObject);
begin
if not assigned(form3) then
begin
form3 := TForm3.Create(Self);
form3.Show;
end;
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
form3:=Nil;
end;
运行时,按Form1的Button1,则运行Form2,按Button2时,则运行Form3。
但是我再按button1时,Form2不能显示在Form3前面,如果要显示Form2,只能关闭
Form3就可以显示form2了,但这样就比较麻烦了,有没有好了方法呢?我想这样:
如果按Button2时,则显示Form3,再按button1时,则显示Form2。如果再按Button2时,
则要显示form3,但不是生成一个Form3,而是要Form3显示在form2的前面,因为无论
按多少次Button2都只能生成一个Form3,没有另一个Form3,也就是不能有两个Form3
(我上面的程序就可以实现这一点)。同理按Button1也一样。请问如何修改代码?
属性WindowState都是为wsMaximized。
在Form1添加Button1和Button2,Button1的onClick和OnClose事件分别为:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not assigned(form2) then
begin
form2 := TForm2.Create(Self);
form2.Show;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
form2:=Nil;
end;
Button2的其onClick和OnClose事件分别为:
procedure TForm1.Button2Click(Sender: TObject);
begin
if not assigned(form3) then
begin
form3 := TForm3.Create(Self);
form3.Show;
end;
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
form3:=Nil;
end;
运行时,按Form1的Button1,则运行Form2,按Button2时,则运行Form3。
但是我再按button1时,Form2不能显示在Form3前面,如果要显示Form2,只能关闭
Form3就可以显示form2了,但这样就比较麻烦了,有没有好了方法呢?我想这样:
如果按Button2时,则显示Form3,再按button1时,则显示Form2。如果再按Button2时,
则要显示form3,但不是生成一个Form3,而是要Form3显示在form2的前面,因为无论
按多少次Button2都只能生成一个Form3,没有另一个Form3,也就是不能有两个Form3
(我上面的程序就可以实现这一点)。同理按Button1也一样。请问如何修改代码?