Ver Mensaje Individual
  #5  
Antiguo 02-11-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Reputación: 23
Crandel Va por buen camino
Cita:
Empezado por Lepe
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.
Pues no se puede disminuir los privilegios !!!!

En la mayoria de los casos se debe ir una clase mas arriba, antes que se haga publico la propiedad, pero en este caso no tienes una clase más arriba que te sirva.

La opción que te queda es sobreescribir la propiedad.

Aca te hice un ejemplo de como sería:
Código Delphi [-]
 type
   TDecWebBrowser = class (TWebBrowser)
   private
     // donde almacenamos el puntero al evento del usuario
     FOnBeforeNavigate2: TWebBrowserBeforeNavigate2;
     // Método que responderá al evento
     procedure AntesDeNavegar(parametros: TParams);
   public
     constructor Create(AOwner: TComponent); override;
   published
     // evento que sobreescribimos
     property OnBeforeNavigate2: TWebBrowserBeforeNavigate2 read FOnBeforeNavigate2 write FOnBeforeNavigate2;
   end;

 implementation
 
 constructor TDecWebBrowser.Create(AOwner: TComponent);
 begin
   inherited;
   // Asigno el método al evento
   inherited OnBeforeNavigate2 := AntesDeNavegar;
 end;
 
 procedure TDecWebBrowser.AntesDeNavegar(parametros: TParams);
 begin
   // TODO
   // esto puede ir antes o depues del TODO, de acuerdo al orden de ejecución
   FOnBeforeNavigate2({todos los parametros}); 
 end;

creo que con esto debería funcionar sin problemas

Suerte
__________________
[Crandel]
Responder Con Cita