-2

D7 などの古いバージョンの Delphi では、s が文字列の場合と同じようにできますがord(s[i])、AnsiString でこれを試みると、例外 (アクセス違反) が発生します。

PS 私は長い間 Delphi 7 を使用していました。

エラーを再現する手順は次のとおりです。新しいプロジェクトを作成し、フォームのメモ (memo1 にします) を使用して、次のコードをフォーム作成イベント ハンドラーに追加します。

procedure TForm1.FormCreate(Sender: TObject);
var u: ansistring;
begin
    u := 'stringtest';
    memo1.Lines.Add(inttostr(ord(u[2])));
end;

私にとって、このコードは AV を生成します。

4

1 に答える 1