gpt4 book ai didi

delphi - 为什么我的组件会自动将其他单元添加到使用界面?

转载 作者:行者123 更新时间:2023-12-03 14:39:34 26 4
gpt4 key购买 nike

我一直在编写一些自己的自定义组件,有些只是从其他组件派生而来,例如 TCustomButton、TCustomListBox 等。

假设我有 TMyButton = class(TCustomButton),它位于名为 MyButton 的单元中,我已在打包中注册此组件并将其安装到 IDE 中。

现在我将创建一个新的空项目并将 TMyButton 拖放到表单中。当我编译项目时,它会自动将这些单元添加到界面部分:

.., StdCtrls, MyButton;

我当然希望添加 MyButton,但希望不会添加 StdCtrls。

这还不错,但我的其他一些组件更糟糕,例如一个源自 TCustomActionMainMenuBar ,当我将其添加到我的表单并编译时,我添加了这些额外的单元:

.., ToolWin, ActnMan, ActnCtrls, ActnMenus, MyMenu;

我想创建自己的组件的原因之一是为了防止将如此多的单元名称添加到界面部分,而且我想自己进行绘制并更改它们的默认属性等。

当我向表单添加 3 或 4 个组件时,系统会自动添加额外的 6-10 个单元名称,我不希望这种情况发生。

所以我的问题 - 是否可以阻止 IDE 自动将单元名称添加到界面部分?

事实上,我在自己的组件源的实际使用接口(interface)中已经有了“不需要的”单元名称,我认为这已经足够了。我的组件知道它们需要哪些单位,那么为什么表单的源文件也必须知道/允许包含名称?

我只想自动添加 MyButton, MyMenu;,而不是添加所有其他常见单元名称。

最佳答案

您的组件很可能派生自已注册 TSelectionEditor 派生实现(请参阅 RegisterSelectionEditor())的其他组件,这些实现覆盖了虚拟 TSelectionEditor.RequiresUnits () 方法将所需单元插入到 uses 子句中。这样做的原因之一是这些组件定义的属性/事件依赖于其他单元中的类型。

关于delphi - 为什么我的组件会自动将其他单元添加到使用界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660311/

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