创建新表单时出现SIGSEGV错误

时间:2014-05-01 12:03:51

标签: forms delphi lazarus

我有一个带有TMainMenu的主表单,当我点击子菜单时,我必须显示一个新表单。这是代码:

procedure TForm1.MenuItem12Click(Sender: TObject);
var Form2 : TForm2;
begin
 Form2 := TForm2.Create(nil);
 Form2.Show;
end; 

Uses我放Unit2,这是第二种形式单位的名称。当我运行程序时,它正确打开表单2.顺便说一句,当我关闭程序时,我与Lazarus发生了SIGSEGV错误。

我怎么能避免它?我在其他程序中也使用过这段代码,但我没有遇到任何问题。这两种表单都在FormStyle := fsNormal;

上设置

enter image description here

2 个答案:

答案 0 :(得分:2)

最可能的原因是Form2的OnFormClose事件中存在问题 - 或者 - Form2上任何对象的析构函数代码中存在缺陷。

答案 1 :(得分:1)

您显示的代码的唯一问题是您泄漏了表单。你创建它没有所有者,没有别的东西会破坏它。

解决这个问题的明显方法是拥有它:

Form2 := TForm2.Create(Self);

这可能无法解决您的错误,但这是您展示的代码唯一的错误。