RAD Studio XE5を使用します。私は、既存の機能に、strand_pattern_length
と呼ばれる、1つの整数の変数を追加しました:Delphi。整数変数を割り当てることさえできません
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
文の後の4行は私です。
E2003 Indeclared識別子: 'strand_pattern_length' 私はこれをデバッグし、
strand_pattern_length
に時計を置くときは、それがのメッセージが表示されます。
ブレークポイントは、strand_pattern_length:=0
ラインに到達する(値を割り当てずに)そのラインを通過し、その後ShowMessage
文、長さの割り当て、およびIf
声明を過ぎて以降、関数の残りをスキップします。
私はこのプロジェクトの他の場所、さらにこの.pas
ファイルのどこかに変数を宣言しましたが、問題はありませんでした。
アイデア?
私はこのDelphiプロジェクトを継承しています。私は非常に経験豊かなプログラマーですが、これは私が20年近く働いてきた最初のDelphiコードです。しかし、確かにinteger
の値を割り当てても、これは難しくありません!
コンパイラは、ソースファイルと一致しないdcuファイルをリンクしています。したがって、奇妙な行動。何とかそれを追跡する必要があります。 –
ソースのコピーが2つあり、編集したものがあなたがコンパイルしたものではない可能性があります。 – Dsm