使用 Delphi 2010,我正在创建一个具有 Registry Key 属性的组件。
我希望该属性显示值的下拉列表。我在下面的内容仅显示数值。
published
property Key: HKey read FKey write SetKey Default HKEY_LOCAL_MACHINE;
使用 Delphi 2010,我正在创建一个具有 Registry Key 属性的组件。
我希望该属性显示值的下拉列表。我在下面的内容仅显示数值。
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
用作属性数据类型,则必须编写自定义属性编辑器,以使属性在设计时显示人类可读名称的下拉列表。安德烈亚斯的回答是一个更好的选择。