ソフトウェアをDelphi5からDelphiXEに移行しています。私はすでに多くの違いを修正しました、そして今私は私のコードをコンパイルすることができます。
発生する問題は、(コードの一部の場所で)「範囲チェックエラー」というエラーが発生する場合があることです。
たとえば、このコードでは次のようになります。
function CopyChar(Ori : string; var Des : Array of char) : Boolean;
var Msg : string;
Counter : integer;
SizeDes : integer;
begin
SizeDes:= SizeOf(Des);
for Counter:= 1 to SizeDes do begin
Des[Counter-1]:= ' ';
end;
Ori:= Trim(Ori);
Msg:= '';
SizeDes:= Min(Length(Ori),SizeDes);
for Counter:= 1 to SizeDes do begin
Des[Counter-1]:= char(Ori[Counter]);
end;
CopyChar:= True;
end;
Des [Counter-1]:='';の行を渡すと、実行時にエラーが発生します。エラーは、最初にループを通過したときではなく、何度も発生した後に発生します。
ランスチェック($ R)を無効にしようとしましたが、問題は解決しません。また、「Counter」のタイプをCardinalとLongWordに変更しようとしましたが、成功しませんでした。
何か役立つアイデアをいただければ幸いです。
ありがとう。