千
千中元
Unregistered / Unconfirmed
GUEST, unregistred user!
现在以Form1为MainFrm.
菜单1的Onclick事件中:
可以运行无限次数,无异常.
现在让Frame出现在动态创建的Form3中.菜单2 Onclick事件如下:
Form3.Free后重新创建,为何导致了和MainFrm 使用Frame上的这种差异?
我跟踪了一下,Form3.Free后Frame 对象仍然存在,按照我以前的观念,
"
Frame := TFrame2.create(Form3);
Frame.Align := AlLeft;
Frame.Parent := Form3;"
-----这三句代码应该可保证Form3.Free以后,以Form3为容器的控件都要
自动释放的.
不好意思,看来要重新学delphi了[]
菜单1的Onclick事件中:
代码:
if Assigned(Frame) then Frame.Free;
Frame :=TFrame2.Create(Application);
Frame.Align := alleft;
Frame.Parent := Form1;
现在让Frame出现在动态创建的Form3中.菜单2 Onclick事件如下:
代码:
Form3:= TForm3.Create(Application);
try
if Assigned(Frame) then Frame.Free
//FreeAndNil(Frame);
------菜单2事件多次触发,第二遍时候上一行代码中Frame.Free出错了
------如果改为 Frame := nil;则可以运行无限多次无错误;
Frame := TFrame2.create(Form3);
Frame.Align := AlLeft;
Frame.Parent := Form3;
Form3.showmodal;
finally
Form3.free;
end;
Form3.Free后重新创建,为何导致了和MainFrm 使用Frame上的这种差异?
我跟踪了一下,Form3.Free后Frame 对象仍然存在,按照我以前的观念,
"
Frame := TFrame2.create(Form3);
Frame.Align := AlLeft;
Frame.Parent := Form3;"
-----这三句代码应该可保证Form3.Free以后,以Form3为容器的控件都要
自动释放的.
不好意思,看来要重新学delphi了[]