微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

打开 TDBF 时出现 SIGSEGV / 堆栈溢出

如何解决打开 TDBF 时出现 SIGSEGV / 堆栈溢出

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。