在调用一个新表单并以这个新表单打开一个 DBF 后,Lazarus 中会出现一个 SIGSEGV,而在 Lazarus 之外运行程序时会出现 Stack-Overflow。操作系统是Win 10。
相同调用 2 种其他形式不会产生此错误。
可能是什么问题?
从 TF_Menu 表单调用:
procedure TF_Menu.Men_ModulesClick(Sender: TObject);
begin
MModulNr := Module.Fields.FieldByName('NR').Value;
Module.close;
F_Menu.Visible := false; // Called form unvisible
F_Modules := TF_Modules.Create(Nil); // New form being created
F_Modules.ShowModal; // New form being activated/shown
FreeAndNil(F_Modules); // New form destroyed
F_Menu.Visible := true;
// …
end;
新表单 TF_Modules 在 Module.Open 处出现错误:
procedure TF_Modules.FormCreate(Sender: TObject);
begin
Module.FilePathFull := Modules_Lw;
Module.ReadOnly := false;
Module.Open; // Here the error occurs
Module.IndexName := 'NR';
end;