我正在编写一个自定义组件编辑器,基本上类似于TActionList
编辑器,因为它允许创建子组件。
编辑器具有添加/删除组件的按钮。
现在,我想知道是否继承了所选组件,以便我可以禁用删除按钮。
我在IDesigner
或相关接口中找不到任何此类成员。
如果我继续按Designer.DeleteSelection(True);
删除,那么我会得到一个例外:
选择包含一个组件,xxx,在一个 祖先,不能删除。
这不是太糟糕,但我想首先禁用删除按钮。
答案 0 :(得分:9)
好的,显然有一种方法,通过检查TComponent.ComponentState
csAncestor
,所以:
ComponentState中的csAncestor
它是documented:
csAncestor - 该组件以祖先形式引入。仅在设置了csDesigning时设置。