リソース DLL の動的な切り替え
リソース DLL の使用 への移動
リソース DLL をアプリケーションの起動時に検索できるほか、リソース DLL を実行時に動的に切り替えることができます。
たとえば、以下のコードではインターフェイス言語をフランス語に切り替えています。
const
FRENCH = (SUBLANG_FRENCH shl 10) or LANG_FRENCH;
if LoadNewResourceModule(FRENCH) <> 0 then
ReinitializeForms;
const FRENCH = (SUBLANG_FRENCH << 10) | LANG_FRENCH;
if (LoadNewResourceModule(FRENCH))
ReinitializeForms();
この技術の利点は、アプリケーションの現在のインスタンスとそのすべてのフォームが使用されることです。レジストリ設定を更新してアプリケーションを再起動したり、アプリケーションに必要なリソースを取得し直す(たとえば、データベース サーバーにログインするなど)必要はありません。
リソース DLL を切り替えると、フォームの実行インスタンス内のプロパティが、新しい DLL で指定されているプロパティで上書きされます。
メモ: 実行時にフォームのプロパティに加えられた変更はすべて失われます。新しい DLL がいったん読み込まれると、デフォルト値はリセットされません。ローカライズによる違いは別として、フォーム オブジェクトが起動時の状態に再初期化されることを前提としたコードは避けてください。