我正在编写一个需要Date,Time和Date / Time类型属性的组件。我希望这些属性在Object Inspector中可见,并且可以选择使用弹出属性编辑器。
我已尝试TDate
作为已发布的媒体资源,这样我就可以获得仅仅日期所需的结果。但是我对TTime
和TDateTime
需要相同的东西,但它们没有附带属性编辑器,实际上它甚至都不接受我在其中输入的任何值。
我找到了可以用作属性编辑器的TDateTimeProperty
,或者我理解无论如何。注册此组件时,我已完成必要的实现。我需要应用它的这个属性实际上是一个TCollectionItem
后代,不一定是组件的一部分,但在其中。
这就是我注册的方式......
RegisterComponents('My Page', [TMyComponent]);
RegisterPropertyEditor(TypeInfo(TDateTime), TMyCollectionItem, 'MyPropName', TDateTimeProperty);
虽然这个编译,但是当我安装它时,这个属性上没有属性编辑器。我尝试使用我的组件的类名来代替TMyCollectionItem
但同样的问题。
我在这里做错了什么来展示这个属性编辑器?
答案 0 :(得分:2)
您无需为TDateTime
,TDate
和TTime
注册内置属性编辑器。他们已经注册了。这就是为什么你注册它们的尝试没有任何影响。
这些类型的内置属性编辑器只是在底层浮点值和字符串表示之间进行转换。他们没有实现日期时间选择器或类似的东西。
你说:
然而,对于TTime和TDateTime我需要相同的东西,但它们没有附带属性编辑器,实际上它甚至都不接受我在那里输入的任何值。
这实际上是不正确的。他们确实带有房产编辑。它们与您在问题中命名的内置属性编辑器相同。他们确实接受了价值观。他们不接受您提供的值,因为您提供的值无效。
如果您想注册一个提供可视日期时间选择器的属性编辑器,那么您必须自己编写属性编辑器。