使用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