掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Xe4.0のデフォルト文字列をAnsiString型にするには? (ID:44749)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 暫定的に、コンパイラ指令の{$H-}を試しても良いかも。 これは String を ShortString (ANSI: 短い文字列) とみなすスイッチなので、 場合によっては AnsiString (ANSI: 長い文字列) を代替できないかもしれません。 [Delphi 2009 と 文字列型] http://edn.embarcadero.com/jp/article/38791 また、Delphi が内部で呼び出している API もすべて W 系なので、 それとの整合性も考慮しなくてはなりません。 'ABC' 等の定数は Unicode として扱われるので、 引数に AnsiString(RawByteString) または String(UnicodeString) を持つ オーバーロードされた関数がある場合、Unicode 版が呼び出されてしまい、 予期せぬ結果になる事があります。 例えば Pos('あいう', <AnsiString 型の変数>) このような記述だと、Unicode 版の Pos() が呼び出されます。 また、TMemo 等の SelStart や SelLength も ANSI と Unicode では値が異なります。 VCL で使われている String なプロパティ等に至っては置換しようがありません。 Unicode 版 Delphi で、ANSI しか使わないアプリを作るのは予想以上に厄介な作業なのです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.