Se supone, que el evento OnBeforeNavigate2 es del propio TWebBrower, entonces, tu componente ha de quitarlo de la zona published. Simplemente declarandolo en tu componente en la zona Private.
A continuación creas tu propio evento OnBeforeNavigate y lo haces published. Y este nuevo evento será el que vea el usuario de tu componente, es decir:
Código Delphi
[-]
type
TDecWebBrowser = class(TWebBrowser)
private
Fnuevo : .....;
procedure AntesDeNavegar(parametros: TParams);
property OnBeforeNavigate2 .... public
constructor Create(AOwner: TComponent); override;
published
property OnBeforeNavigateNuevo:.... read FNuevo write FNuevo;
end;
implementation
constructor TDecWebBrowser.Create(AOwner: TComponent);
begin
inherited;
OnBeforeNavigate2 := AntesDeNavegar;
end;
procedure TDecWebBrowser.AntesDeNavegar(parametros: TParams);
begin
if Assigned(FOnBeforeNavigateNuevo) then
FOnBeforeNavigateNuevo(.....parametros que lleve);
end;
El usuario programador que use tu componente no sabrá que existe AntesDeNavigar (ni falta que le hace)
.
Espero te sirva.