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