Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cambio de orden de ejecución de eventos (https://www.clubdelphi.com/foros/showthread.php?t=39853)

JM75 31-01-2007 16:29:56

Cambio de orden de ejecución de eventos
 
Hola a todos, necesito saber si hay alguna manera de alterar el orden de le ejecución de los eventos, o que un evento concretamente hacer que no salte en su momento.

Me explico un poco más. Tengo dos formularios (form1,form2) visibles del mismo tipo, y en el código he puesto el "form1.free" después de hacer el "showmodal". Necesito que cuando cierre form1 se ejecute primero el destructor sobrecargado antes de que se ejecute el "activate" de form2.

A groso modo, cuando cierro form1 los métodos se ejecutan en el siguiente orden:
form1.onclose
form1.deactivate
form2.activate
form1.free

Lo que necesito es que form2.activate se ejecute el último, bien cambiando el orden o bien indicando que no se ejecute en su momento para llamarlo más tarde.

Gracias de antemano.

Lepe 31-01-2007 16:36:38

hola jm75 ten cuidado, después de Form1.Free no se puede llamar a ningún otro evento o método de Form1, porque ya no existe, y una llamada a cualquier método provocará una Violación de Acceso a memoria.

Para anular un evento si lo tienes fácil:
Código Delphi [-]
  Form1.OnActivate := nil;

Para asignar un evento:
Código Delphi [-]
  Form1.OnActivate := Form1Activate;

Ojo con esto:
Código Delphi [-]
  Form1.OnActivate := Form2.Form2Activate;
 Form2.free;
porque al activarse de nuevo el Form1 obtendrás un Access Violation.

Saludos

JM75 31-01-2007 16:47:36

Hola Lepe, el método al que quiero llamar es "form2.activate", siendo form2 un objeto que existe -y está visible- distinto del objeto form1, con lo que al hacer "form1.free" el objeto form2 existe todavía.

Gracias.


La franja horaria es GMT +2. Ahora son las 08:27:54.

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