在delphi中Form创建和释放的方法?Form的指针指向NIL后,如何再调用form?

LogForm:=nil;
with rOwner do
begin for I:=0 to ComponentCount-1 do
if CompareText(Components[I].ClassName , 'TLogForm') = 0 then
begin
LogForm:=TLogForm(Components[I]);
Break;
end;
end;

各位大侠,指教呀!

第1个回答  2011-06-03
为什么要指向nil,不明白,主要是做什么,手动创建一个窗口吗?给你一个手动打开窗口的方法
在菜单project——>Options--->form页里将子窗口从自动创建转到手动创建然后再写代码这样就可以打开窗口了,希望对你有用。
if not Assigned(form1) then
begin
try
form1:= Tform1.Create(application);
form1.ShowModal();
finally
freeAndNil(form1);
end;
end;
第2个回答  2011-06-07
这个有点外行,创建你已经知道了,主要是:如果你以后要用,就不能释放.除非你要把Form做成Dll的方式.
如果不用Form,你可以把他设为Hide方式.本回答被提问者采纳
第3个回答  2011-06-03
我一般是这样调用的。
首先RegisterClass(TLogForm);
if Application.FindComponent(LogForm)=nil then
TFormClass(FindClass(TLogForm)).Create(Application)
第4个回答  2011-06-03
要重新创建实例:
LogForm:=TLogForm.Create(self);
LogForm.Show;
相似回答