繁体   English   中英

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

[英]Delphi: How to create an extra design-time menu for a custom component?

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

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

我找不到在原始Vcl.DBGrids单元中创建此菜单的任何代码,但真是运气不好,无法在网上找到有关如何执行此操作的解决方案。

这也适用于双击。 它曾经调用列编辑器,现在仅创建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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM