Delphi 先关闭当前窗体再打开另一个窗体的???

时间:2022-01-06 20:39:02
恕小弟刚学Delphi不久,对于Delphi的组件的方法和成员还知道的不够详尽,我想在一个窗体上置多个按钮,点击后当前窗体关闭,打开另一个窗体,就是点击一个关闭上一个。要关闭上一个窗口,才能打开另一个窗口。

7 个解决方案

#1


这个想法应该能做到,但觉得这么操作主窗口不是那么好。

将主窗体隐藏会实际一些。

#2


谢谢cangwu_lee(小橙子)的回复。
上面我说得不是很清楚。主窗体有一个ListView和很多按钮,我想点击一个按钮,在ListView里面打开一个子窗体,然后再点击另一个按钮打开另一个子窗体,这里我想自动关闭上一个打开的子窗体。我用的是show,用showmodal的话,整个主窗体死掉了。我在网上找了一下关于这方面的问题都没找到,懂的朋友请帮帮忙回答。谢谢

#3


var
  Form1,Form2: TForm;

  Form1:= TForm1.Create(nil);
  Form1.WindowState := wsMaximized;
  Form1.Parent := ListView1;
  Form1.Show;
//下
  Form1.Close;
  Form2 := Tform2.Create(nil);
  Form2.WindowState := wsMaximized;
  Form2.parent := listview1;
  Form2.show;
自己再改成个通用的就行了

#4


谢谢chinayk11(风中流云) 的回复!
我还想问,如果有很多个Form的时候我怎么办?我不可能预先告诉下一个要打开窗体的上一个窗体的名字是什么的?有没有全部关闭之类的,或者专递一个参数告诉下一个窗体,上一个要关闭的窗体的名字。

#5


还有窗体重复打开的问题,我要怎么判断这个窗体已经打开,不要重复打开?

#6


To:chinayk11(风中流云)
我是这样写的,
application.CreateForm(TForm1,Form1);
Form1.Dock(ListView1,BoundsRect);
Form1.show;
Form1.free;

和你写法,application.CreateForm(TForm1,Form1);好还是Form1:= TForm1.Create(nil);的写法好?

#7


这么多问题?
你可以把参数加在构造函数里面,判断窗体打开Assigned(aForm)
建窗体的写法,我个人认为是一样的,一般是按后面的写

#1


这个想法应该能做到,但觉得这么操作主窗口不是那么好。

将主窗体隐藏会实际一些。

#2


谢谢cangwu_lee(小橙子)的回复。
上面我说得不是很清楚。主窗体有一个ListView和很多按钮,我想点击一个按钮,在ListView里面打开一个子窗体,然后再点击另一个按钮打开另一个子窗体,这里我想自动关闭上一个打开的子窗体。我用的是show,用showmodal的话,整个主窗体死掉了。我在网上找了一下关于这方面的问题都没找到,懂的朋友请帮帮忙回答。谢谢

#3


var
  Form1,Form2: TForm;

  Form1:= TForm1.Create(nil);
  Form1.WindowState := wsMaximized;
  Form1.Parent := ListView1;
  Form1.Show;
//下
  Form1.Close;
  Form2 := Tform2.Create(nil);
  Form2.WindowState := wsMaximized;
  Form2.parent := listview1;
  Form2.show;
自己再改成个通用的就行了

#4


谢谢chinayk11(风中流云) 的回复!
我还想问,如果有很多个Form的时候我怎么办?我不可能预先告诉下一个要打开窗体的上一个窗体的名字是什么的?有没有全部关闭之类的,或者专递一个参数告诉下一个窗体,上一个要关闭的窗体的名字。

#5


还有窗体重复打开的问题,我要怎么判断这个窗体已经打开,不要重复打开?

#6


To:chinayk11(风中流云)
我是这样写的,
application.CreateForm(TForm1,Form1);
Form1.Dock(ListView1,BoundsRect);
Form1.show;
Form1.free;

和你写法,application.CreateForm(TForm1,Form1);好还是Form1:= TForm1.Create(nil);的写法好?

#7


这么多问题?
你可以把参数加在构造函数里面,判断窗体打开Assigned(aForm)
建窗体的写法,我个人认为是一样的,一般是按后面的写