主窗口下点击button如何创建多个新窗口的方法
假定在软件的主界面上有3个button,点击每个button,都会弹出一个新的窗口,如果3个button都点的话,就分别弹出3个新窗口(每个窗口都有自己的不同内容),连同原来的主界面,总共是4个窗口界面。我尝试用“主窗口下点击button创建新窗口的方法”,但最终只能显示一个窗口,根本不是我想要。
新窗口用form1.show; 不要用form1.showmodal;
这样你就可以同时开任意数目的窗口了
实验了一下,的确能开任意个窗口,谢了。我描述的还不太清楚,我想要的是:1. 每个button不论点多少次,只能产生一个窗口(在实际操作过程中,某个button可能会反复操作好几次,但我只需要产生一个窗口就可以了,其后续的功能在这一个窗口中实现就行了);2.在windows的底部那一栏里,能够显示4个窗口的图标,就像我同时开启4个文档一样,点击其中一个窗口,该窗口立刻显示出来;3. 三个字窗口的最大最小化,能否跟主窗口的最大最小化独立?
需要动态创建窗口对象:
form := TForm1.Create(Self);
form.Show;
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TmyForms = class of TForm; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } procedure ShowForm(TForms: TmyForms;var Form: TForm); public { Public declarations } end; var Form1: TForm1; implementation{$R *.dfm} uses Unit2,Unit3,Unit4;//Form2,Form3,Form4所在单元 var Form2,Form3,Form4:TForm; procedure TForm1.ShowForm(TForms: TmyForms;var Form: TForm); begin if not Assigned(Form) then //未建立 Form:=TForms.Create(self)//建立 else ShowWindow(Form.Handle,SW_SHOWNORMAL);//恢复原来尺寸 Form.Show;//显示出来 end; procedure TForm1.Button1Click(Sender: TObject); begin ShowForm(TForm2,Form2); end; procedure TForm1.Button2Click(Sender: TObject); begin ShowForm(TForm3,Form3); end; procedure TForm1.Button3Click(Sender: TObject); begin ShowForm(TForm4,Form4); end; end.