项目范围的自定义组件

时间:2015-08-17 15:33:13

标签: delphi delphi-6

我是否可以拥有一个自定义可视组件(稍微修改过的TSpeedButton),可以将其拖动到某个项目中并且仅存在于某个项目中,而不需要在Delphi范围内注册?我也不想使用TFrame模拟按钮。它不应该用于其他Delphi项目。

2 个答案:

答案 0 :(得分:3)

不幸的是,没有。在设计时使用组件需要将其放入安装到IDE中的包中。但是,您可以根据需要在每个项目的基础上启用/禁用已安装的软件包。

答案 1 :(得分:2)

您可以使用所谓的插入类。像这样定义自定义组件:

type
  TSpeedButton = class(Buttons.TSpeedButton)
    ....
  end;

请注意,类名与父类相同。这是制作插入工作技术所必需的。

将您的自定义放入此转接程序类。当您在设计器中构建UI时,请使用调色板中的TSpeedButton。确保声明自定义组件的单元列在包含一个自定义组件的每个表单的uses子句中。

在表单流式传输的运行时,您的插入组件将被实例化而不是原始组件。

这样做的缺点是您无法安排在设计时看到您的自定义。如果需要设置vanilla组件中不存在的属性,则必须在运行时完成这些属性。这是您不希望在IDE中安装任何内容的结果。

如果这种方法不能满足您的需求,那么您应该使用设计时包以常规方式制作组件。如果您愿意,可以安排包裹仅包含在特定项目中。