5

Delphi 2006 で完全に Unicode 互換のアプリケーションがあります。すべての AnsiString を WideString に置き換え、すべての VCL コントロールを TNT コントロールに置き換え、すべての文字列関数を AnsiString から WideString に変更しました。すべてを元に戻す必要があるため、すべての作業が無駄になったようです。Delphi 2009 をだまして、Widestrings が実際には UnicodeStrings であると思わせる方法はありますか?

4

3 に答える 3

13

いいえ、実際にはありません。しかし、アプリケーションを真にUnicode対応にする作業を後悔することはありません。

TNTコントロールは、通常のVCLコントロールに簡単に置き換えることができます。これは、GExperts(http://www.gexperts.org)のウィザードを使用して簡単に行うことができます。このウィザードは、あるコントロールタイプを別のコントロールタイプに自動的に置き換えます。

次に、すべてのWideString宣言を通常の文字列に変更できます。文字列はUnicodeStringのエイリアスになりました。そのため、すべての文字列でUnicodeデータを適切に保持できます。

ところで、TNTコントロールの作者であるTroy Wolbrinkは、自分のコントロールよりもDelphi2009を大いに好んでいます。

于 2008-11-18T23:28:00.557 に答える
0

さまざまな XML ファイルを入力として使用するアプリケーションで同じことを行いました。私の場合、プログラム全体で UTF-8 (通常の文字列を使用できるようにするため) を使用し、表示目的 (TNT コントロール) のためにのみ WideString に変換しました。

WideString と UTF-8 の間の変換を削除し、TNT コントロールを手動で通常の VCL コントロールに置き換えました。

変換には、テストで約 1 時間かかりました。コードはより単純になり、プログラムは著しく高速になります。

于 2008-11-19T11:26:41.837 に答える
0

TNT Controls の主な利点は、Windows 9x で Ansi プログラムとして動作できることだけです。完全なユニコードではありません。どこでも完全な Unicode サポート (Stringlist.LoadFromFile、Form.OnKeyPress など) が必要な場合は、Delphi 2009 に移行することをお勧めします。

于 2008-11-19T08:29:00.403 に答える