我刚接触delphi,对Delphi的窗口有点迷惑。
1.比如要用到三个窗口,示例程序里一般都在Application中CreateForm三个窗口。我的疑问,这个时候是不是三个窗口全部建立了,只是hide?那么是不是该应用以外的程序也可以show这三个窗口了?
2.程序中要“打开”这三个窗口,用form.show?我发现,比如在该from中输入一些信息,当close该from后再次show,输入的信息仍然留在from中。是不是另外有Destroy的方法?
1.比如要用到三个窗口,示例程序里一般都在Application中CreateForm三个窗口。我的疑问,这个时候是不是三个窗口全部建立了,只是hide?那么是不是该应用以外的程序也可以show这三个窗口了?
2.程序中要“打开”这三个窗口,用form.show?我发现,比如在该from中输入一些信息,当close该from后再次show,输入的信息仍然留在from中。是不是另外有Destroy的方法?
解决方案 »
- 急!为什么Detail里只打印出一行数据?
- 现在这个坛子里的问题怎么天天看都还是这些..
- Rave 中不只如何解决的问题!
- 在Delphi中实现SAX解析XML文件
- 请问谁有,或者哪里可以下载sql server 2000 开发版
- OBDC连接数据库编译
- 为什么我的程序,一启动就自动开了几个窗体?我明明没有SHOW他们的啊!不知道怎么办?为什么?
- 高手回答喽!如何更改完注册表的设置立即生效呢?比如更改了输入法热键,桌面的颜色,怎么让他立即生效?200&结贴!
- 关于通讯的多字节传输
- 【求助】在程序中执SQL语句查询含时间条件时出错
- cxgrid选中多行删除问题
- F1BOOK中的曲线图问题,100分求助,跪求答案,分不够再加
第二个问题是你有些概念的模糊。CLOSE后有些东西保留是因为你在PROJECT OPTION里选择了AUTO CREATE,把这个移掉,变为AVAILBAL FORM,所谓的信息就没有了,其实就是些class而已,Destory也是不需要你主动去调用的。在UNIT1 把下面的代码放上去,在project option 的Forms里把auto create的form1移到对面。试试看
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;var
vForm1: TForm1;implementation{$R *.dfm}initialization
Application.CreateForm(TForm, vForm1);
vForm1.Caption := 'The First Form';
vForm1.Show;end.
建议你不要用静态创建窗口,采用动态创建吧,关闭时Action:=caFree
begin
try
ShowModal;
if ModalResult = mrOK then
begin
//处理
end;
finally
FreeAndNil(Form2);
end;
end;