使用RAD Studio XE5。我加入了一个整型变量,叫strand_pattern_length
,以现有的功能:德尔福。我甚至不能指定一个整数变量
function TDBManager.GetStrandVars(No_of_Strands, No_of_StrandLayers: integer;
StrandPts: TRealPtRecAry; DB_its_a_Strand: TBoolAry;
ProfileIDStr: string): TStrandVars;
var
StrandVars: TStrandVars;
i, j, k, n_l, str_count, colour_count, strand_pattern_length: integer;
strand_pattern: string;
Inset_dup, Inset_nodup: TInt_Array;
begin
... lots of code
OpenConnect;
runQuery('SELECT Strand_Pattern FROM ProfileSummary WHERE ProfileID = ''' + ProfileIDStr + '''', True);
strand_pattern := _query.FieldByName('Strand_Pattern').AsString;
CloseConnect;
strand_pattern_length := 0;
ShowMessage(IntToStr(Length(strand_pattern)));
strand_pattern_length := Length(strand_pattern);
ShowMessage(IntToStr(strand_pattern_length));
if strand_pattern_length <> No_of_Strands then
ShowMessage('TDBManager.GetStrandVars : The length of the strand pattern (' + IntToStr(length(strand_pattern)) + ') is different from the number of strands (' + IntToStr(No_of_Strands) + ')');
的CloseConnect
语句后面的四行是我的。
当调试此,把手表上strand_pattern_length
,它显示的一个消息:
E2003 Indeclared标识符: 'strand_pattern_length'。
断点获取到strand_pattern_length:=0
线,通过该管线(而不设定值),然后跳过过去ShowMessage
陈述,长度分配和If
声明并开始通过功能的其余部分。
我已经声明各种变量都在其他地方的项目,即使在这种.pas
文件的其他地方,而不是有一个问题。
任何想法?
我继承了这个Delphi工程,虽然我是一个非常有经验的程序员,这是第一个Delphi代码我已经工作了近20年。但确实分配一个integer
值不应该这么难!
编译器正在链接与您的源文件不匹配的dcu文件。因此,奇怪的行为。你需要以某种方式跟踪。 –
您可能有两个源代码副本,并且您编辑的代码不是您编译的代码。 – Dsm