Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2007
JM75 JM75 is offline
Miembro
 
Registrado: sep 2006
Posts: 25
Poder: 0
JM75 Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 31-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 31-01-2007 a las 16:39:01.
Responder Con Cita
  #3  
Antiguo 31-01-2007
JM75 JM75 is offline
Miembro
 
Registrado: sep 2006
Posts: 25
Poder: 0
JM75 Va por buen camino
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.
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
¿como abortar ejecución de eventos? pjjorda Varios 5 06-06-2006 20:59:59
Assignar eventos durante ejecución miguelml Varios 2 09-05-2006 10:12:53
Como cambiar el orden de cambio de Edits con la tecla TAB JuanErasmo C++ Builder 1 04-04-2006 18:10:33
Eventos en componentes creados en tiempo de ejecucion joumont OOP 3 27-12-2005 14:48:23
Cambio del Main Form en ejecución andresenlared Varios 1 06-01-2004 18:26:29


La franja horaria es GMT +2. Ahora son las 10:09:28.


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
Copyright 1996-2007 Club Delphi