我有一个带有TMainMenu
的主表单,当我点击子菜单时,我必须显示一个新表单。这是代码:
procedure TForm1.MenuItem12Click(Sender: TObject);
var Form2 : TForm2;
begin
Form2 := TForm2.Create(nil);
Form2.Show;
end;
而Uses
我放Unit2
,这是第二种形式单位的名称。当我运行程序时,它正确打开表单2.顺便说一句,当我关闭程序时,我与Lazarus发生了SIGSEGV错误。
我怎么能避免它?我在其他程序中也使用过这段代码,但我没有遇到任何问题。这两种表单都在FormStyle := fsNormal;
答案 0 :(得分:2)
最可能的原因是Form2的OnFormClose事件中存在问题 - 或者 - Form2上任何对象的析构函数代码中存在缺陷。
答案 1 :(得分:1)
您显示的代码的唯一问题是您泄漏了表单。你创建它没有所有者,没有别的东西会破坏它。
解决这个问题的明显方法是拥有它:
Form2 := TForm2.Create(Self);
这可能无法解决您的错误,但这是您展示的代码唯一的错误。