Delphiの旧バージョンで作成したプロジェクトをXE以降へマイグレーション後のレコードフィールドのアライメントの設定

提供: Support
移動先: 案内検索

概要

Delphi 5以前のバージョンでは、[プロジェクト]-[オプション]-[コンパイラ]-[コード生成]に[構造体を境界配置]というオプションが用意されていました。

Thumb03000065ujpn.jpg

図1: Delphi 5のプロジェクトオプションの例


このオプションは、XE以降のバージョンでは、[プロジェクト]-[オプション]-[コンパイル]-[コード生成]の[レコードフィールドのアライメント]というオプションに置き換わっています。

例えば、Delphi5でプロジェクトを作成し、[構造体を境界配置]オプションを有効にしたプロジェクトをXE以降のバージョンで開き、プロジェクトのマイグレーションを行なうと、[レコードフィールドのアライメント]は、バイトになってしまいます。

Thumb03000066ujpn.jpg

図2: Delphi XEのプロジェクトオプションの例


マイグレーション後、[レコードフィールドのアライメント]のオプションは、正しくはクワットワードが選択されなければなりませんが、間違ってバイトが選択されています。

この症状はDelphi IDEの不具合となりますので、同じ事例に遭遇した場合は、誠にお手数ですが、 手動でレコードフィールドのアライメントをクアッドワードへ変更してください。