1
打开一个新的窗口一般用
VAR
newwin:Tmyform1;
Begin
newwin:=Tmyform1.creat(self);
newwin,show;
End
为什么不直接 用 myform1.shwo;2
如果用下面方式打开窗口
VAR
newwin:Tmyform1;
Begin
newwin:=Tmyform1.creat(self);
newwin.show;
End在打开的窗口中应用CLOSE和在主窗口中执行newwin.free 以及 newwin.Release是否相同3
delphi-project-optings-forms中的两个窗口
auto-create和Avalable中的内容有什么差别,如何设定?
打开一个新的窗口一般用
VAR
newwin:Tmyform1;
Begin
newwin:=Tmyform1.creat(self);
newwin,show;
End
为什么不直接 用 myform1.shwo;2
如果用下面方式打开窗口
VAR
newwin:Tmyform1;
Begin
newwin:=Tmyform1.creat(self);
newwin.show;
End在打开的窗口中应用CLOSE和在主窗口中执行newwin.free 以及 newwin.Release是否相同3
delphi-project-optings-forms中的两个窗口
auto-create和Avalable中的内容有什么差别,如何设定?
你那样的窗体调用写法,
是因为delphi-project-optings-forms,myform1是属于Avalable的.
auto-create和Avalable:分别说的是,程序启动时自动创建窗体和不创建。
如果是Avalable的,则需要用
newwin:=Tmyform1.creat(self);
newwin,show;
先创建,然后来调用窗口
form.release等待资源不再使用后释放资源,同样不修改form指针为nil,所以在destroy中最好使用release进行资源释放操作。
1,这是个动态创建的问题
newwin:Tmyform1;声明一个类的对象(该对象未创建指向0x0000..) newwin:=Tmyform1.creat(self);调用构造方法创建一个类大小的地址块(该对象指向该地址)
newwin.show;
2.刚自己试了下from.free
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
from.release却是向系统发送个消息
procedure TCustomForm.Release;
begin
PostMessage(Handle, CM_RELEASE, 0, 0);
end;
3.auto-create和Avalable字面意思是自动创建及可得到的。
auto-create:在创建应用程序的时候
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
就创建了该From然后读入到了内存。
Avalable:非自动的,对于那些用户不一定用得到的From就放在这里~
{望指正!}