Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2010
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 0
ElDuc Va por buen camino
Solucionado

Ya lo he solucionado, lo explico por si a alguien le puede interesar.

Código Delphi [-]
...

Interface

Type
  MyClass=Class
  Private
    FOld:NotifyEvent;   // Aquí almacenaremos el viejo evento
    FTheForm:TForm;
    Procedure MyOnResize(Sender:TObject);
  Public
    Constructor Create(AOwner:TForm);
  End;

Implementation

Procedure MyClass.MyOnResize(Sender:TObject);
Begin
Beep;   // Ejecutamos nuestro código
 
FTheForm.OnResize:=FOld;   // Apuntamos al evento del TForm
FTheForm.OnResize(Sender);   // Lo llamamos
FTheForm.OnResize:=MyOnResize   // Volvemos a apuntar a nuestro código
End;
 
Constructor MyClass.Create(AOwner:TForm);;
Begin
FTheForm:=AOwner;
FOld:FTheForm.OnResize;   // Almacenamos el evento del TForm
FTheForm.OnResize:=MyOnResize
End;
 
End.

Co este código se consigue lo que yo deseaba, es decir, ejecutar nuestro código y posteriormente el que hay en el evento OnResize del Formulario.

Saludos.
Responder Con Cita
  #2  
Antiguo 15-09-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Es más o menos eso, aunque creo que no es necesario que cada vez hagas la asignación de los eventos.
Al principio (al crear el componente o al asignar el form) te quedas con el apuntador al form y luego sólo debes lanzar el evento cuando toque.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 20-09-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
La forma correcta, tal como dice Neftali sería:

Código Delphi [-]
constructor MyClass.Create(AOwner: TComponent);
begin
  inherited;
  FTheForm := AOwner;
  FOldResize := FTheForm.OnResize;
  FTheForm.OnResize := MyOnResize
end;

procedure MyClass.MyOnResize(Sender: TObject);
begin
  // Mi código...
  if Assigned(FOldResize) then
    FOldResize(Sender)
end;

Ahora, si tu clase es un componente, la asignación del evento deberías hacerla redefiniendo el método Loaded:

Código Delphi [-]
  MyClass = class(TComponent)
  protected
    procedure Loaded; override;
  end;

implementation

procedure MyClass.Loaded;
begin
  inherited;
  // Verificamos que estemos en tiempo de ejecución y solo así cambiamos la asigación
  // del evento OnResize
  if not (csDesigning in ComponentState) then
  begin
    FOldResize := FTheForm.OnResize;
    FTheForm.OnResize := MyOnResize
  end
end;


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Un programa hecho en "Delphi for PHP" puede funcionar en un Hosting PHP normal? cocute Varios 3 28-02-2011 19:36:45
"Robar" lineas de un fichero Angel Vicente Varios 2 10-09-2010 08:45:12
Microsoft México - invita al evento "Mentes aplicadas" Héctor Randolph Noticias 0 27-11-2006 20:08:23
como se puede solucionar "Stream read error"? JuanErasmo Firebird e Interbase 0 08-08-2006 15:40:25
Error aplicacion corba "no se puede abrir midas.idl" CORBATIN Providers 0 25-08-2004 14:37:37


La franja horaria es GMT +2. Ahora son las 11:17:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi