Ejecutar algo después de mostrar el formulario
Artículo por cadetill · 04 mayo 2006
5570 vistas
Imaginemos que queremos ejecutar algo de código (por ejemplo mostrar un mensaje) pero queremos hacerlo justo después de mostrar el formulario. En un primer momento podemos pensar de hacerlo en el OnShow, pero claro, la pantalla aun no se ha mostrado. ¿Cómo lo solucionamos? Pues creando nuestro propio mensaje.
Primero tendremos que definir la constante del mensaje
Ahora tenemos que definir el manejador del menaje
Y por supuesto la implementación del mismo
Ahora sólo nos queda poner el mensaje definido mediante PostMessage. Esto será lo último que haremos en el OnShow del formulario
Primero tendremos que definir la constante del mensaje
delphi
unit Unit1; interface uses Windows,....; const CM_AFTERSHOW = WM_USER + 84;
Ahora tenemos que definir el manejador del menaje
delphi
type TForm1 = class(TForm) ........ private procedure CMAfterShow(var Msg: TMessage); message CM_AFTERSHOW;
Y por supuesto la implementación del mismo
delphi
procedure TForm1.CMAfterShow(var Msg: TMessage); begin ShowMessage('el form ya está visible'); end;
Ahora sólo nos queda poner el mensaje definido mediante PostMessage. Esto será lo último que haremos en el OnShow del formulario
delphi
procedure TForm1.FormShow(Sender: TObject); begin ........ PostMessage(Handle, CM_AFTERSHOW, 0, 0); end;