Delphi 2010を使用して、レジストリキープロパティを持つコンポーネントを作成しています。
プロパティに値のドロップダウンリストを表示したいと思います。以下にあるのは数値のみです。
published
property Key: HKey read FKey write SetKey Default HKEY_LOCAL_MACHINE;
Delphi 2010を使用して、レジストリキープロパティを持つコンポーネントを作成しています。
プロパティに値のドロップダウンリストを表示したいと思います。以下にあるのは数値のみです。
published
property Key: HKey read FKey write SetKey Default HKEY_LOCAL_MACHINE;
TLamaの答えに加えて、最もDelphi風の方法は単に行うことだと思います
type
TRegistryRootKey = (rkClassesRoot, rkCurentUser, rkLocalMachine,
rkUsers, rkPerformanceData, rkCurrentConfig, rtDynData);
...
published
property RootKey: TRegistryRootKey read FRootKey write FRootKey
default rkLocalMachine;
値を使用するときは、次のようにします。
procedure TMyClass.DoSomething;
const
RootKeys: array[TRegistryRootKey] of DWORD = (HKEY_CLASSES_ROOT,
HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_PERFORMANCE_DATA,
HKEY_CURRENT_CONFIG, HKEY_DYN_DATA);
begin
Windows.SomeAPIFunction(RootKeys[FRootKey]);
end;
もちろん、RootKeys
複数のメソッドで必要な場合は、定数をクラスのプライベート定数にすることができます。
プロパティのデータ型として使用する場合はHKEY
、デザイン時に人間が読み取れる名前のドロップダウンリストをプロパティに表示させるために、カスタムプロパティエディタを作成する必要があります。アンドレアスの答えはより良い選択です。