0

Delphi 2010を使用して、レジストリキープロパティを持つコンポーネントを作成しています。
プロパティに値のドロップダウンリストを表示したいと思います。以下にあるのは数値のみです。

published
    property Key: HKey read FKey write SetKey Default HKEY_LOCAL_MACHINE;
4

2 に答える 2

5

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複数のメソッドで必要な場合は、定数をクラスのプライベート定数にすることができます。

于 2013-02-24T16:05:27.093 に答える
0

プロパティのデータ型として使用する場合はHKEY、デザイン時に人間が読み取れる名前のドロップダウンリストをプロパティに表示させるために、カスタムプロパティエディタを作成する必要があります。アンドレアスの答えはより良い選択です。

于 2013-02-24T17:44:54.023 に答える