Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2004
Avatar de triniti
triniti triniti is offline
Miembro
 
Registrado: jun 2004
Ubicación: Alicante.
Posts: 25
Poder: 0
triniti Va por buen camino
Question dudas evento OnActivate

Buenos dias a todos! Tengo una duda que me está fastidiando desde hace un rato:

En una aplicación de varios formularios, todos ellos de formStyle "fsNormal", tengo un formulario principal siempre visible, desde el cual llamo a los secundarios.
La llamada que hago a los secundarios es de tipo modal, entonces, cuando cierro el fomulario secundario que esté abierto, el foco vuelve a entrar en el principal, que es el único que queda abierto.
En este momento de la ejecución del programa es cuando se deberían realizar una serie de procedimientos que yo he declarado en el evento onActivate del formulario principal, pero me he dado cuenta de que dicho evento no se realiza.
Yo pensaba que siempre que el foco éntraba en el formulario, se producia el evento OnActivate, pero he visto que no es así, y entonces he estado buscando otros eventos y otra forma de hacer que esos procedimientos se ejecuten, pero no he encontrado la solución.

El problema es fácil, pero no se si me he expresado bien. De todas formas, gracias por adelantado. Saludos!!
Responder Con Cita
  #2  
Antiguo 26-08-2004
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 21
sur-se Va por buen camino
Hola. Podrías poner tu llamada a esos procedmientos después de la free del cierre de la ventana modal. Crea un procedimiento general y dentro de el mete todos esos procesos. Después de cada shomodal y free de las pantallas, llama a este nuevo procedimiento y ya está.

Salu2.
Responder Con Cita
  #3  
Antiguo 26-08-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por triniti
Tengo una duda que me está fastidiando desde hace un rato
Define rato



Al grano. Es de suponer que haces algo así:

Código:
procedure TfmMenu.Button1Click(Sender: TObject);
begin
  MiForm := TMiForm.Create(Application);
  try
    try
      MiForm.ShowModal;
    finally
      FreeAndNil(MiForm);
    end;
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;
pues puedes hacer algo así:

Código:
procedure TfmMenu.Button1Click(Sender: TObject);
begin
  MiForm := TMiForm.Create(Application);
  try
    try
      MiForm.ShowModal;
      // -> aqui lo que tu quieras despues de cerrar el formulario
    finally
      FreeAndNil(MiForm);
    end;
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;
Espero te sirva
Responder Con Cita
  #4  
Antiguo 26-08-2004
Avatar de triniti
triniti triniti is offline
Miembro
 
Registrado: jun 2004
Ubicación: Alicante.
Posts: 25
Poder: 0
triniti Va por buen camino
[quote=cadetill]Define rato
jajaja, era un rato, dejémoslo ahí.

Bueno, tengo que deciros que al final lo que he hecho ha sido crear un procedimiento publico en el formulario principal donde guardo todos los procesos, y que llamo desde los formularios secundarios, despues de hacer el close de éstos. Eso es a lo que se refería Sur-se.
Y lo que decía Cadetill creo no me servía porque el formulario al que yo hacia referencia ya estaba creado y mostrado (era el formulario principal de la aplicación), hubiese servido en el caso contrario.

Muchas gracias a los dos por molestaros en darme soluciones, que siempre sirven, si no para ahora, para en un caso futuro, no?

Chaooo!
Responder Con Cita
  #5  
Antiguo 26-08-2004
Avatar de triniti
triniti triniti is offline
Miembro
 
Registrado: jun 2004
Ubicación: Alicante.
Posts: 25
Poder: 0
triniti Va por buen camino
Talking Ups!!

Ups! Creo que lo de citar tendré que estudiarlo, jajaja, nunca lo habia hecho y pensaba que era así.
Pido disculpas por destruir la armonía del foro, jeje.
Responder Con Cita
  #6  
Antiguo 26-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Cita:
Empezado por triniti
Y lo que decía Cadetill creo no me servía porque el formulario al que yo hacia referencia ya estaba creado y mostrado (era el formulario principal de la aplicación), hubiese servido en el caso contrario.
¿Puedes explicar eso? Creo que lo que decía Cadetill te tiene que servir y no he entendido nada de ese párrafo
__________________
E pur si muove
Responder Con Cita
  #7  
Antiguo 26-08-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por triniti
Ups! Creo que lo de citar tendré que estudiarlo, jajaja, nunca lo habia hecho y pensaba que era así.
Sí, es así, sólo te ha faltado cerrar la etiqueta con [/quote ] ( sin espacios, claro)

Cita:
Empezado por triniti
jajaja, era un rato, dejémoslo ahí.
vale, pero espero que haya sido largo

Cita:
Empezado por triniti
Bueno, tengo que deciros que al final lo que he hecho ha sido crear un procedimiento publico en el formulario principal donde guardo todos los procesos, y que llamo desde los formularios secundarios, despues de hacer el close de éstos.
En mi ejemplo, el "formulario principal" es el TfmMenu, desde el que se llaman a los demás formularios, por lo que, sería en TfmMenu donde tu has definido ese procedimiento público y, por lo que mi solución también te serviría. Despues del ShowModal, hacer una llamada a ese procedimiento público (que ahora ya podría ser privado)

Como no sabemos lo que hace ese procedimiento, es difícil poder sugerirte mejores alternativas a estas (para no tener que estar pensando en poner la llamadita al procedimiento creado después de la llamada a cada formulario).
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 12:41:56.


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