【问题标题】:SIGSEGV / Stack-Overflow when opening a TDBF打开 TDBF 时的 SIGSEGV / Stack-Overflow
【发布时间】: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


【解决方案1】:

这不是一个缺陷 dbf。我已经创建了全新的 dbf。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-06
    • 2019-10-03
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 2010-10-04
    • 1970-01-01
    相关资源
    最近更新 更多