如何解决打开 TDBF 时出现 SIGSEGV / 堆栈溢出
在调用一个新表单并在这个新表单中打开一个 DBF 后,在 Lazarus 中会出现一个 SIGSEGV,并且在 Lazarus 之外运行程序时会出现一个 Stack-Overflow。 操作系统为 Win 10。
可能是什么问题?
从表单 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 举报,一经查实,本站将立刻删除。