多个FORM如何处理? 必要时再生成呀。WORD2000以前的WORD 是采用MDI多文档界面方式,WIN内部处理了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在调用的时候在生成即可加快速度。如下:Form1:=TForm1.Create(self);Form1.Show();WORD是一个MDI程序,在Delphi中将主窗口的FormStyle设置为:fsMDIForm,可将该窗口设置成为MDI主窗口。fsMDIChild,比表示MDI子窗口。一个程序中可以有很多个MDI子窗口,但是只有一个MDI主窗口.在WORD中你看到的文档窗口都是MDI子窗口。 Delphi默认的是自动生成所有的窗体,你可以在Opition中的Form页面中移动不需要自动生成的窗体到右边... 窗口多了,速度是很慢!Delphi在默认的情况下,是自动创建所有的窗口。如果你要速度快,你只能用动态的方法来建立窗口!比如:Form1:=tform.create;这样的话速度就很快!至于Word,他是用的MDI的方法!象Wingsun说的一样!! 是啊,应该自动创建窗体我做的所有程序,全部是自动创建,这样启动是很快的。如果你想做成WORD一样,只能用MDI如下Form1:=TForm1.Create(self)Form1.Show;在close时可写下:Action:=cafree;如用SDI可如下:Form1:=TForm1.Create(self)Form1.ShowModal;Form1.Free;不要忘了Free; MDI与SDI都可使用其方法!program Project1;uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2};{$R *.RES}begin Application.Initialize; Application.CreateForm(TForm1, Form1);// Application.CreateForm(TForm2, Form2); Application.Run;end.//////////////////////////unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementationuses Unit2;{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);beginif Form2=nil then begin Form2:=TForm2.Create(self); Form2.Show; end else Form2.SetFocus;end;end.///////////////////////////unit Unit2;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type TForm2 = class(TForm) procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;var Form2: TForm2;implementation{$R *.DFM}procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);beginAction:=caFree;Form2:=NIL;end;end. 我来总结一下:1、首先,在Progject | Options中将除主窗口和DataModule外的窗口都设成不是自动创建的。2、在运行时,如果要打开某窗口,用手工创建窗口的办法。上面都有好多朋友说了。3、补充一点: 如果想一直开了窗口不关闭,执行菜单或按钮命令时将它调出来,可在Screen.Forms中查找该窗口是否已经打开,如果打开就将其显示并扯到前面来,否则就创建它。 是不是一开始就把数据库关联上了,这样就慢了,使用TDATAMODULE也许好些 求助用ADO连接ACCESS的代码 Fastreport4.5 安装问题 谁能帮忙写段代码啊 自定义纸张打印问题,急,谢谢 一个简单问题,shelltreeview在哪一栏? 请教个excel的问题。 ocx已经安装成功了,但是它没有icon在控制面面版里看不到! 关于dll的问题 有谁有Signsoft VisIt v.2.3的控件,我愿意用100分跟换 actionlist控件的作用是什么? 急急急!如何以自定密码(不是Windows屏保系统的密码)立即运行一个屏保?(内详) actionlist的问题
Form1:=TForm1.Create(self);
Form1.Show();
WORD是一个MDI程序,在Delphi中将主窗口的FormStyle设置为:fsMDIForm,可将该窗口设置成为MDI主窗口。fsMDIChild,比表示MDI子窗口。一个程序中可以有很多个MDI子窗口,但是只有一个MDI主窗口.在WORD中你看到的文档窗口都是MDI子窗口。
如果你想做成WORD一样,只能用MDI如下
Form1:=TForm1.Create(self)
Form1.Show;
在close时可写下:
Action:=cafree;
如用SDI可如下:Form1:=TForm1.Create(self)
Form1.ShowModal;
Form1.Free;
不要忘了Free;
MDI与SDI都可使用其方法!
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};{$R *.RES}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
// Application.CreateForm(TForm2, Form2);
Application.Run;
end.
//////////////////////////
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses Unit2;
{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
begin
if Form2=nil then
begin
Form2:=TForm2.Create(self);
Form2.Show;
end else Form2.SetFocus;
end;
end.
///////////////////////////
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm2 = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.DFM}procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
Form2:=NIL;
end;end.
2、在运行时,如果要打开某窗口,用手工创建窗口的办法。上面都有好多朋友说了。
3、补充一点:
如果想一直开了窗口不关闭,执行菜单或按钮命令时将它调出来,可在Screen.Forms中查找该窗口是否已经打开,如果打开就将其显示并扯到前面来,否则就创建它。