Delphi 像TPageControl那样编辑属性
我尝试了各种Delphi属性编辑器,甚至制作了一个编辑器作为单独的窗口 现在,我想开发一个视觉控件,其中包含多种复杂的显示项,如下所示:Delphi 像TPageControl那样编辑属性,delphi,properties,design-time,property-editor,Delphi,Properties,Design Time,Property Editor,我尝试了各种Delphi属性编辑器,甚至制作了一个编辑器作为单独的窗口 现在,我想开发一个视觉控件,其中包含多种复杂的显示项,如下所示: ┌─────────────────────────┐ │ Parent control │ │ ┌─────────────────────┐ │ │ │ Display Item 1 │ │ │ ├─────────────────────┤ │ │ │ Display Item 2 │ │ │ ├──────────
┌─────────────────────────┐
│ Parent control │
│ ┌─────────────────────┐ │
│ │ Display Item 1 │ │
│ ├─────────────────────┤ │
│ │ Display Item 2 │ │
│ ├─────────────────────┤ │
│ │ Display Item 3 │ │
│ ├─────────────────────┤ │
│ │ Display Item 4 │ │
│ └─────────────────────┘ │
└─────────────────────────┘
并希望在对象检查器中编辑每个显示项的属性,就像TPageControl及其TTabSheets所做的那样
这意味着我单击了一些显示项,其属性显示在对象检查器中,准备编辑。我单击父控件,可以在对象检查器中编辑它的属性
如何做到这一点?请给我一个线索
另外,我考虑过TDBGrid属性编辑器,但它的行为不同:当我在“对象检查器列编辑器”窗口中单击“列”属性时,当我在其中选择某个项目时,我可以编辑它的属性。我希望在没有中间窗口的情况下执行此操作。您可以查看TDBGrid控件的源代码:它的列基本上是网格控件本身拥有的集合中的项。Tabsheet是一个单独的对象,具有自己的属性-只是页面控件管理子对象及其属性的添加和删除显而易见。当您单击选项卡工作表时,仅因为您单击了该对象,就将其激活。在控件的上下文中,每个显示行都将是一个具有自己属性的对象。我认为,不知何故,您会想象选项卡页的属性是TPageControl的子属性,但事实并非如此。它在哪些方面“表现不同”?IDE显示OI中的列,可以在其中对它们进行单独编辑,那么您想要做的事情有何不同呢?我认为这里没有问题。只要您使用默认设置保持控件,并且不让它成为子组件(通过
SetSubComponent
),您就应该实现您想要的。所以,谢谢各位。您的建议非常有用,但我将在周一继续,并将查看SetSubComponent:)