当我尝试设置在运行时创建的 BitBtn 的 Parent 属性时,在编译过程中出现了奇怪的错误。使用 Delphi 7 在 Win7 64bit 上。
[Error] unitMainForm.pas(70): 不兼容类型:'TWidgetControl' 和 'TMainForm'
我是这样在运行时创建 BitBtn 的:
newButton := TBitBtn.Create(Self);
newButton.Parent := Self;
这里的“Self”指的是名为“MainForm”的窗体。无论我将父级设置为什么,都会出现这种情况。我尝试过将当前窗体、ScrollBox、Panel作为父级,但如果我尝试创建SpeedButton时,情况也是一样的。事实上,当我使用TButton甚至TImage时,我的代码按预期工作,但是对于TBitBtn和TSpeedButton却不行。TButton和TImage接受窗体作为它们的父级,并正常显示。有什么想法吗?如果需要,我可以提供整个代码的示例。
TWidgetControl
是来自 CLX 的。我知道这一点。如果表单是 VCL 表单而不是 CLX 表单,你唯一无法将 CLX 按钮的 Parent 设置为表单的方法就是这种情况。 - David HeffernanTWidgetControl
适用于CLX和VCL。自从上次使用Delphi 7以来已经很长时间了。 - Bogdan DoicinTWidgetControl
是 CLX 直接对应于 VCL 的TWinControl
。 - David Heffernan