gpt4 book ai didi

Delphi 7,将 Form 设置为 BitBtn 的父级时出错

转载 作者:行者123 更新时间:2023-12-03 15:48:32 25 4
gpt4 key购买 nike

当我尝试设置运行时创建的 BitBtn 的 Parent 属性时,我在编译时遇到了奇怪的错误。在Win7 64位上使用Delphi 7。

[Error] unitMainForm.pas(70): Incompatible types: 'TWidgetControl' and 'TMainForm'

我在运行时创建 BitBtn,如下所示:

  newButton := TBitBtn.Create(Self);
newButton.Parent := Self;

这里的“Self”是表单,名为“MainForm”。无论我为 parent 提出什么,我都会得到这个。我试过把当前的Form、ScrollBox、Panel。如果我尝试创建 SpeedButton,也会发生同样的情况。问题是,当我使用 TButtons 甚至 TImages 时,我的代码可以按预期工作,但不能使用 TBitBtns 或 TSpeedButtons。 TButton 和 TImage 接受表单作为其父级,并按预期显示。有任何想法吗?如果有帮助,我可以根据要求提供整个代码的示例。

最佳答案

您正在混合 CLX 和 VCL。您的按钮是 CLX TBitBtn,但您的表单是 VCL 表单。

我不知道您希望您的应用程序是 VCL 应用程序还是 CLX 应用程序,但无论是哪一种,您都需要应用程序的所有部分都来自同一框架。

我的猜测是您想要一个 VCL 应用程序。不知何故,您使用了 CLX 单元 QButtons,而不是 VCL 单元 Buttons。这就是您获得 CLX 版本的 TBitBtn 的原因。

因此,假设我猜对了,只需将 QButtons 更改为 Buttons 即可编译您的代码。

关于Delphi 7,将 Form 设置为 BitBtn 的父级时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14729062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com