0
使用Delphi 2010,我使用註冊表項屬性創建組件。
我希望該屬性顯示值的下拉列表。我在下面,只顯示數值。如何用下拉列表創建HKey屬性?
published
property Key: HKey read FKey write SetKey Default HKEY_LOCAL_MACHINE;
使用Delphi 2010,我使用註冊表項屬性創建組件。
我希望該屬性顯示值的下拉列表。我在下面,只顯示數值。如何用下拉列表創建HKey屬性?
published
property Key: HKey read FKey write SetKey Default HKEY_LOCAL_MACHINE;
除了TLama的答案,我認爲最德爾福十歲上下的方式是簡單地做
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
作爲屬性數據類型,則必須編寫自定義屬性編輯器,以便使屬性在設計時顯示可讀名稱的下拉列表。安德烈亞斯的回答是一個更好的選擇。