我一直在网上寻找答案,但我找不到答案。
我想要做的是创建一个组件,我可以在设计时添加组件,移动组件,右键单击它们以弹出菜单,更改其属性等等。
例如,我将组件“A”(基于TImage32
从Graphics32库中删除),然后我希望能够删除组件“B”(基于TBitmap32
)进入A,但由于B不是从TPanel
之类的标准VCL继承,所以我不知道如何制作设计时组件。
答案 0 :(得分:2)
您要搜索的是创建父/子关系的能力。父项充当容器,子项包含在容器的边界内。 TPanel
是容器的典型示例。任何视觉组件都可以是孩子。
就祖先而言,父母必须来自TWinControl
,而子女必须来自TControl
。在实践中,你很少直接从这些类派生出来,而是从他们的一个后代中派生出来。如果我没记错的话,另一个因素是父控件必须在ControlStyle
中包含csAcceptsControls
。
现在,TImage32
确实派生自TWinControl
,因此它可以充当容器。但是,我不确定csAcceptsControls
ControlStyle
中是否包含TImage32
。
我真的不熟悉 TImage32
,也不知道它是否可以作为父母。我怀疑它不是设计用作容器。如果是这种情况,那么您可以将csAcceptsControls
添加到派生类的构造函数中的ControlStyle
,并将控件作为父级。
我怀疑如果 < / p>
TImage32
不包含csAcceptsControls
,那么这是设计的,并且图像控件不应该作为父级。
显然TImage32
与VCL TImage
不同,确实能够充当其他控件的父级。
至于您问题中的其他控件,TBitmap32
不是来自TControl
,也不能是儿童控件。