很简单的代码逻辑,为什么会出错呢?
程序有两个窗体TForm1和TForm2;
我在TForm1的Private区加了如下代码:
private
Form2: TForm2;
然后TForm1窗体上加一按钮,按钮的事件代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then Form2 := TForm2.Create(Application);
Form2.Show;
end;
我设了TForm2的Close事件的Action := crFree,我的目的就是TForm2关闭的时候释放。
第一次点击按钮当然没有问题,但当你将Form2关闭,再次点击Form1的Button时,就出现了内存访问的错误,百思有点不解,感觉这样的代码应该很符合逻辑,但为什么会出错呢?