我是否可以拥有一个自定义可视组件(稍微修改过的TSpeedButton),可以将其拖动到某个项目中并且仅存在于某个项目中,而不需要在Delphi范围内注册?我也不想使用TFrame模拟按钮。它不应该用于其他Delphi项目。
答案 0 :(得分:3)
不幸的是,没有。在设计时使用组件需要将其放入安装到IDE中的包中。但是,您可以根据需要在每个项目的基础上启用/禁用已安装的软件包。
答案 1 :(得分:2)
您可以使用所谓的插入类。像这样定义自定义组件:
type
TSpeedButton = class(Buttons.TSpeedButton)
....
end;
请注意,类名与父类相同。这是制作插入工作技术所必需的。
将您的自定义放入此转接程序类。当您在设计器中构建UI时,请使用调色板中的TSpeedButton
。确保声明自定义组件的单元列在包含一个自定义组件的每个表单的uses子句中。
在表单流式传输的运行时,您的插入组件将被实例化而不是原始组件。
这样做的缺点是您无法安排在设计时看到您的自定义。如果需要设置vanilla组件中不存在的属性,则必须在运行时完成这些属性。这是您不希望在IDE中安装任何内容的结果。
如果这种方法不能满足您的需求,那么您应该使用设计时包以常规方式制作组件。如果您愿意,可以安排包裹仅包含在特定项目中。