【发布时间】:2020-12-21 13:09:37
【问题描述】:
在调用一个新表单并以这个新表单打开一个 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;
在 Module.Open 处出现错误的新表单 TF_Modules:
procedure TF_Modules.FormCreate(Sender: TObject);
begin
Module.FilePathFull := Modules_Lw;
Module.ReadOnly := false;
Module.Open; // Here the error occurs
Module.IndexName := 'NR';
end;
【问题讨论】:
-
这很有趣:我是否在 TDBF 中使用了不同的 DBF:它正在工作 我是否在 TDBF 中使用了不同的 DBF:不工作我是否重命名有问题的 dbf:不工作我是否将DBF 放入不同的文件夹并重命名:不工作
标签: segmentation-fault stack-overflow lazarus tdbf