【问题标题】:"Invalid floating point operation" while creating a new form [closed]创建新表单时出现“无效的浮点运算”[关闭]
【发布时间】:2015-07-31 06:31:42
【问题描述】:

创建新表单时出现“无效浮点运算”错误,如下所示:

procedure TfrmForm1.actMyProcedureExecute(Sender: TObject);
var
  MyForm2 : TfrmForm2;
begin
  MyForm2 := TfrmForm2.Create(Self);  //Getting error while executing this statement. I put a breakpoint on Create event of TForm2 form, but before that I am getting this error and breakpoint never comes on OnCreate event of TForm2 form.

end;

【问题讨论】:

  • 答案在TfrmForm2、pas和dfm的实现中找到。只有你能看到。
  • 我在代码中的评论:我在 TForm2 表单的 Create 事件上设置了一个断点,但在此之前我收到了这个错误并且断点永远不会出现在 TForm2 表单的 OnCreate 事件上。跨度>
  • 好的,如果您不想扩展问题,我已经给出了与问题相同详细程度的答案。剩下的调查交给你了。
  • 尝试启用调试 DCU,您将看到 David 告诉您的内容。

标签: delphi delphi-2010


【解决方案1】:

TfrmForm2的构造函数执行过程中出现错误。在执行 OnCreate 事件之前引发错误。

因此,最可能的解释是在 dfm 文件中指定的控件的创建和属性设置期间引发了异常。

我想,另一种可能性是您为该类添加了一个构造函数,并且其中的代码引发了异常。我怀疑这不太可能。

通过启用调试 DCU,然后在引发异常时查看调用堆栈来对此进行调试。这应该给你一个指针,指出哪个部分的构造失败了。一旦您确定了故障点,您就可以尝试解决问题。

最后,如果问题中没有MCVE,这是您可以期待的答案类型。广泛而笼统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    相关资源
    最近更新 更多