双击非可视组件

时间:2012-03-12 13:57:19

标签: delphi components double-click

  

可能重复:
  How to invoke a property editor at design time

我正在创建一个非可视组件,我希望用户能够在设计时双击我的组件并打开设计时编辑器。

我该怎么做?

1 个答案:

答案 0 :(得分:4)

在设计时双击组件会调用组件编辑器。默认组件编辑器是查找具有特定名称的事件属性并为其找到的内容创建处理程序的编辑器。您可以编写自己的组件编辑器来执行任何操作。

创建TComponentEditor的后代(来自 DesignEditors 单元)并覆盖Edit方法以处理双击。您还可以覆盖GetVerbCountGetVerbExecuteVerb方法,将上下文菜单项添加到组件中。要获取编辑器要求编辑的组件的引用,请检查Component属性。如果编辑修改了组件,请调用Designer.Modified

通过Register程序中的RegisterComponentEditor(来自 DesignIntf​​ ),告诉IDE您的编辑器应该与您的组件一起使用。

您应该将此代码放在设计时包中,与组件的代码分开。将运行时包放在设计时包的“需求”列表中。如果将所有内容放在一个包中,那么组件的使用者将无法在其项目中使用运行时包;它们不允许分发设计时包的依赖项,这些依赖项仅供IDE使用。