Ver Mensaje Individual
  #3  
Antiguo 14-10-2010
rhino0nt rhino0nt is offline
Miembro
 
Registrado: jun 2008
Posts: 25
Reputación: 0
rhino0nt Va por buen camino
Solucionado

Lo solucione con este post de Roman:

Cita:

Una forma de hacerlo:

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

type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure CMClose(var Message: TMessage); message CM_CLOSE;
  end;

implementation

procedure TForm2.CMClose(var Message: TMessage);
begin
  ModalResult := mrOk;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  PostMessage(Handle, CM_CLOSE, 0, 0);
end;
PostMessage manda el mensaje pero sólo hasta que se procese el resto de mensajes, en este caso hasta que todos los mensajes necesarios para que el formulario termine de cargarse se procesen. Así, en el manejador del mensaje CM_CLOSE pones ya el valor deseado para ModalResult.

// Saludos
El problema es por el momento en que se llama el evento Close dentro del ciclo de vida de la forma, pero esto lo resuelve.

Gracias a todos.
Responder Con Cita