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

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 11-04-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por chileno
pero la idea inicial es cerrar la ficha
El punto es que es esta idea original la que no le cuadra a nadie más que a ti. ¿Para qué muestras una ventana a la que el usuario posiblemente no va a acceder (si escoge cancelar)?

Pero bueno, no soy yo quien para dictar tus gustos. Lo apunto sólo para opinar que a fin de cuentas esto puede ser confuso para el usuario.

¿Se puede hacer lo que quieres? Sí, claro que se puede. El problema es sólo, como ya has visto, que no puedes cerrar- ni, por tanto destruir -una ventana desde su propio evento OnShow. La solución entonces está en ejecutar el código que ahora tienes en este evento posteriormente.

Aquí la idea:

Código Delphi [-]
const
  CM_AFTERSHOW = WM_USER + 1;

type
  TFicha1 = class(TForm)
    procedure FormShow(Sender: TObject);

  private
    procedure CMAfterShow(var Msg: TMessage); message CMAFTERSHOW;
  end;

implementation

procedure TFicha1.FormShow(Sender: TObject);
begin
  PostMessage(Self.Handle, CM_AFTERSHOW, 0, 0);
end;

procedure TForm1.CMAfterShow(var Msg: TMessage);
begin
  with TFicha2.Create(nil) do
    try
      if ShowModal = mrCancel then Self.Close;
    finally
      Free;
    end;
end;

PostMessage envía un mensaje a la ventana (Ficha1) que se procesará sólo hasta que terminen de procesarse los otros mensajes, lo cual se traduce en que tal mensaje no se recibirá sino hasta que el evento OnShow haya terminado por completo. Tal mensaje lo recibes con el manejador CMAfterShow desde donde sí puedes autocerrar el formulario.

// Saludos
Responder Con Cita
 


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
Efecto al cerrar form kakesoft Varios 1 12-12-2005 20:57:17
cerrar/minimizar un form jmlifi Varios 1 28-11-2005 10:54:08
Al cerrar Form no entra en OnClose nowheremanza OOP 2 13-09-2005 14:04:41
Problema al cerrar form Iseberiano Varios 4 08-06-2005 21:50:17
Cerrar un Form scooterjgm OOP 5 18-11-2004 11:27:33


La franja horaria es GMT +2. Ahora son las 16:57:38.


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