1

在调用一个新表单并以这个新表单打开一个 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;

4

1 回答 1

1

这不是一个缺陷 dbf。我已经创建了全新的 dbf,而且都是一样的。

现在已经创建了全新的表单,到目前为止一切都运行良好。天知道那是什么。

于 2020-12-22T13:16:17.623 回答