Delphi 2009 button.enabled显示结构错误但仍然编译

时间:2010-02-12 18:04:30

标签: delphi button delphi-2009

我只是想知道是否有其他人遇到过这个相当迟钝的错误。我有一个看起来像这样松散的程序:

procedure dostuff();
begin
  if session_started = true then // global var
  begin
   // do bunch of calculations
   // goes on for a while
   // then at the end we enable the save button 
   save_score.enabled := true; // save_score is a tbutton - nothing special about it!
  end;
end;

使用该声明,结构视图告诉我'TButton'在第4499行不包含名为'Enabled'的成员。但是代码编译并执行得很好!如果我这样做:

procedure dostuff();
begin
  if session_started = true then // global var
  begin
    // do bunch of calculations
    // goes on for a while
    // then at the end we enable the save button 
    with save_score do
    begin
      enabled := true;
    end;
  end;

端;

然后我没有得到观众的抱怨,它仍在编辑。

所以任何人都知道这笔交易是什么?无论如何都不是惊天动地,但它会抱怨看似无关紧要的一段代码,这真是太奇怪了。

1 个答案:

答案 0 :(得分:0)

此功能称为“Error Insight”:它应该在您编译之前在源代码中显示错误。
您可以在“结构”查看器中看到与错误相对应的节点(按Shift + Alt + F11显示它)。

从一开始,Error Insight一直都是错误的 如今,它比以前更少,但仍然如此。

Delphi IDE中的一些东西依赖于Error Insight,并且也受到这些错误的影响 例如,当错误洞察认为底层代码出错时,某些内置重构可能性不起作用。

你可以disable Error Insight,但这并不能解决某些依赖关系(即重构仍然不起作用,但现在你看不到先验)。

这就是像ModelMaker Code Explorer(MMX)这样的原因之一 MMX是一种廉价的Delphi扩展,有大量的重构操作才能正常工作。

- 的Jeroen