2010-09-08 69 views

回答

5

我使用德尔福5,它看起来像这个问题是通过声明超过30个变量(我知道,我知道)引起的。它们被称为什么或者它们是什么类型似乎都不重要。

+3

确实;这是Delphi 2009中已解决的一个错误:http://qc.embarcadero.com/wc/qcmain.aspx?d=51078 – 2010-09-08 12:22:15

+2

这符合我的经验。编译器似乎会为指定检查“追踪”一定数量的变量,而且“结果”通常是第一个被放弃的变量。解决方法很简单:编写较短的函数。 – 2010-09-08 12:24:15

+1

报告51078说,它被固定在12.0.2872.27234,但我很确定我在D2010看到它。 – Alex 2010-09-08 13:42:53

2

下面的代码不会生成一个警告用Delphi 5所以

  • 要么是错误在其他版本的Delphi(你应该提到您使用的版本)
  • 或者要么是你没告诉我们呢。

代码

program ProveAPoint; 
{$APPTYPE CONSOLE} 
uses SysUtils; 

type 
    TRipXMLElement = record 
    end; 
    TXMLAcceptorBCOLSubmission = class 
    public 
    function createRecordsInBCFEEPAR(AXML: TRipXMLElement): string; 
    end; 

function TXMLAcceptorBCOLSubmission.createRecordsInBCFEEPAR(AXML: TRipXMLElement): String; 
begin 
    Result := ''; 
end; 

var 
    AXML: TRipXMLElement; 
begin 
    with TXMLAcceptorBCOLSubmission.Create do 
    begin 
    createRecordsInBCFEEPAR(AXML); 
    Free; 
    end; 
end.