Delphi:如何为自定义组件创建额外的设计时菜单?

标签 delphi menu ide delphi-xe2

我最近重新编译了 TDBGrid 组件,以实现几个自定义功能,尽管我注意到额外的设计时上下文菜单项“列编辑器”的功能现在已经消失了。

http://i121.photobucket.com/albums/o210/R33_m/Columns.png

我未能找到任何在原始 Vcl.DBGrids 单元中创建此菜单的代码,并且在网上寻找有关如何执行此操作的解决方案时运气非常糟糕。

这也适用于双击。以前是调用Columns Editor,现在只是创建OnCellClick事件。

最佳答案

在组件的设计时包中,实现一个组件编辑器:

type
  TMyComponentEditor = class(TComponentEditor)
    procedure ExecuteVerb(Index: Integer); override;
    function GetVerb(Index: Integer): string; override;
    function GetVerbCount: Integer; override;
  end;

procedure TMyComponentEditor.ExecuteVerb(Index: Integer);
begin
  case Index of
  0:
    Beep;
  end;
end;

function TMyComponentEditor.GetVerb(Index: Integer): string;
begin
  Result := 'Beep';
end;

function TMyComponentEditor.GetVerbCount: Integer;
begin
  Result := 1;
end;

您还需要注册此组件编辑器。在您的 Register 过程中调用 RegisterComponentEditor 来执行此操作:

RegisterComponentEditor(TMyComponent, TMyComponentEditor);

关于Delphi:如何为自定义组件创建额外的设计时菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514265/

相关文章:

javascript - 具有保存位置的 jquery 菜单

c - 是否有任何工具/IDE/脚本可以将我的 C 代码限制为每行最多 80 个字符?

android - 如何在c4droid中使用sd2原语和sdl2_gfx

delphi - 仅获取目录列表的最快方法是什么

windows - 如何在Windows服务上添加证书

jsf - 如何使用 PrimeFaces 实现递归菜单

java - 如何在Intellijidea中安装特定版本的JRebel插件

Delphi VCL for Win32 - 多个事件处理程序

delphi - 如何强制预构建脚本在每次编译时运行

javascript - 尝试检测第二次单击复选框时出现停止传播问题