長い文字列(Delphi)
Delphi コンパイラ指令のリスト:インデックス への移動
種類 |
スイッチ |
構文 |
{$H+} または {$H-}。{$LONGSTRINGS ON} または {$LONGSTRINGS OFF}。 |
デフォルト |
{$H+} {$LONGSTRINGS ON} |
スコープ |
ローカル |
説明
$H 指令は、予約語 string が型宣言内で長さを指定せずに使用されるときの意味を制御するものです。 汎用の string 型は、動的に割り当てられる長い文字列(基本型 UnicodeString)と静的に割り当てられる短い文字列(基本型 ShortString)のいずれかを表します。
デフォルトの {$H+} の場合、Delphi では汎用文字列型を長い UnicodeString と定義します。 コンポーネント ライブラリのすべてのコンポーネントは、この状態でコンパイルされています。 自分でコンポーネントを記述するときにも、長い文字列を使用する必要があります。同様に、コンポーネント ライブラリの文字列型プロパティからデータを受け取るコードも、長い文字列を使用しなければなりません。
{$H-} の状態は、デフォルトで短い文字列を使用していた Delphi のバージョンのコードを使用する際に主に役立ちます。 文字列型定義の意味をローカルでオーバーライドして、短い文字列が生成されるようにすることができます。 また、コード内の短い文字列型の宣言を string[255] または ShortString に書き換える方法もあります。これにより、あいまいさがなくなり、$H の設定にも依存しないようになります。
メモ: LONGSTRINGS 指令はもう使用されておらず、コンパイラに無視されます。 現在の Delphi コンパイラでは、Unicode 文字に基づく長い文字列型(UnicodeString)を使用しています。 デフォルトの文字列型(UnicodeString)を使用することをお勧めします。 以前の文字列型を使用しなければならない場合は、必要に応じて、ShortString 型か
string[<number>]
型を明示的に使用してください。