初学者问DELPHI关于创建窗体的问题,请指教
请问一下,我们在DELPHI中点新建一个FORM,这是创建窗体吗?那种创建窗体和 Application.CreateForm(TDataModule1,DataModule1)有什么区别?既然在开发程序时,可以点新建来创建窗体,为什么还要写创建窗体呢?
还有,有书上说,要在一个窗体中用别一窗体数据,必须要先在这体窗中创建那个要显示的窗体aplication.CreateForm(TDataModule1,DataModule1);但书上不是也说用uses 窗体名,也可以引用吗?那是用哪个呀
[解决办法]
们在DELPHI中点新建一个FORM,这是创建窗体吗?
是,你点完之后,他自动会在项目文件里加入一条
Application.CreateForm(..)的了,你可以通过Project-> View Source看看!
[解决办法]
既然在开发程序时,可以点新建来创建窗体,为什么还要写创建窗体呢?
你在开发时所创建好的代码,就是程序在运行时就分它分配好内存,
但是很多时候有些窗体你可能在需要他的时候才会用到它,这就浪费了内存,
所以你可以在PROJECT的文件里把他自动生成的Applicaiton.Create(..);给
删掉,等你有需要的时候再在代码里去动态的生成,这样就可以节省内存了!
uses应用是没错,而且也是必要,但是问题你uses的单元如果还没传建,那就会出错.
uses和创建是两回事!
[解决办法]
> > 我们在DELPHI中点新建一个FORM,这是创建窗体吗?
在DELPHI的IDE开发环境中,File-> New-> Form 或者工具栏快捷按钮,创建一个Form; 这个窗口是用于设计的,在Form中放置你需要的控件.
> > 那种创建窗体和 Application.CreateForm(TDataModule1,DataModule1)有什么区别
在delphi的应用程序中,窗口分为两种,即自动创建和手动创建,打开工程选项Project-> Options的Form标签即有
(Auto-create forms)--> 自动创建
Avaiable Form---> 手动创建
自动创建的窗口,在exe加载到内存中就会创建,并分配好内存等系统资源;
而手动创建的窗口,并不会一运行exe就创建,而是等到执行到创建窗口的代码中分配占用内存;
比如在一个button的click事件中,写到
aplication.CreateForm(TForm1,Form1);
或者
Form1 := TForm1.Create(nil);
则要单击这个按钮执行事件才创建窗口,windows才会为该窗口分配内存.
一般来说,为了使exe启动时更快,可以采用主窗口是自动创建而其的部分窗口手动创建;
> > 但书上不是也说用uses 窗体名,也可以引用吗?那是用哪个呀
一个From要使用另一个Form,,是一定要Use 那个Form的,否则编译时,找声类定义呀