Я перевожу программное обеспечение с Delphi 5 на Delphi XE.
Я уже исправил множество различий и теперь могу скомпилировать свой код.
Проблема заключается в том, что иногда (в некоторых местах кода) я получаю сообщение об ошибке «Range Check Error».
Например, в этом коде:
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]: = '';
Ошибка возникает не в первый раз, когда она проходит через цикл, а через много раз.
Я пытался отключить Rance Checking ($ R), но это не решает мою проблему.
Я также пытался изменить тип "Counter" на Cardinal и LongWord, но безуспешно
Буду рад любой полезной идее!
Спасибо.