Ver Mensaje Individual
  #6  
Antiguo 13-12-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
cadetill comentó:
Bueno, pues a falta de otras soluciones.... haré lo de la variable
Calma, calma no desesperes!

En alguna ocasión di un respuesta para algo que creo es similar. No era para mostrar un mensaje pero sí para ejecutar algo una vez que el formulario se mostrado completamente.

A grandes rasgos la idea es definir un mensaje propio:

Código:
const
  CM_AFTERSHOW = WM_USER + 84;

type
  TForm1 = class(TForm)
  private
    procedure CMAfterShow(var Msg: TMessage); message CM_AFTERSHOW;
  end;
En el evento OnShow mandas el mensaje con Post:

Código:
PostMessage(Handle, CM_AFTERSHOW, 0, 0);
Y en el manejador de CM_AFTERSHOW muestras el mensaje que quieres. (Algunas veces conviene poner Application.ProcessMessages al principio del manejador de CM_AFTERSHOW)

El punto aquí es usar PostMessage en lugar de SendMessage ya que de esta manera el mensaje no se procesará sino hasta que terminen de procesarse los demás y de esta manera el formulario ya se habrá mostrado.
// Saludos
Responder Con Cita