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

ert*_*rtx 2 ide delphi menu delphi-xe2

我最近重新编译了TDBGrid组件,实现了几个自定义函数,虽然我注意到额外的设计时上下文菜单项"列编辑器"的功能现在已经消失.

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

我没有找到任何代码在原始Vcl.DBGrids单元中创建此菜单,并且运气真的很糟糕,在线寻找如何执行此操作的解决方案.

这也适用于双击.它曾经调用Columns Editor,现在它只是创建OnCellClick事件.

Dav*_*nan 5

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

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;
Run Code Online (Sandbox Code Playgroud)

您还需要注册此组件编辑器.请RegisterComponentEditor在您的Register程序中调用:

RegisterComponentEditor(TMyComponent, TMyComponentEditor);
Run Code Online (Sandbox Code Playgroud)