Поскольку:
TShape = class(TGraphicControl)
TGraphicControl = class(TControl)
А у TControl есть соотв.обработчик:
property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
То можно сделать наследника от TShape и "проявить" это свойство.
Примерно так:
Код:
Type
TMyShape = class(TShape)
published
property OnClick;
property OnDblClick; //вот это оно и есть
end;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
MyShape1 : TMyShape;
procedure MyShape1DblClick(Sender: TObject); //это объявление на уровне формы
end;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
//-----------------------------
//Тест
MyShape1:=TMyShape.Create(Self);
MyShape1.Parent:=Self;
MyShape1.OnDblClick:=MyShape1DblClick;
//-----------------------------
end;
procedure TForm1.MyShape1DblClick(Sender: TObject);
//это реализация на уровне формы
begin
ShowMessage('Двойной щелчок мышкой по MyShape1');
end;