PDA

Ver la Versión Completa : esperar pulsacion de tecla


brandolin
14-03-2005, 23:02:30
Hola a todos, hace tiempo que me tiene loco un problemilla y a simple vista es una tontera pero no puedo dar con la solucion.

Es que tengo un form el cual muestra en un panel un mensaje de error, quiero que cuando se muestre este mensaje, se pause el programa hasta que se presione una tecla. Parece una pavada... pero no le doy en la tecla.

Alguna sugerencia. Gracias

keyboy
15-03-2005, 02:38:54
No es que sea una pavada sino que es un método más de aplicaciones DOS que de Windows. Lo normal sería que usaras una ventana modal (sea con ShowMessage o una ventana propia) para mostrar el mensaje de error. La aplicación no continuará mientras no se cierre dicha ventana.

De todas formas creo que puedes lograr el efecto que quieres de la siguiente manera.

Declara una variable Esperar, de tipo Booleano, en tu formulario. Coloca una componente ApplicationEvents y en su evento OnMessage pones:


if Esperar then
begin
Esperar := Msg.message <> WM_KEYDOWN;
Handled := true;
end;


Cuando vayas a mostrar el mensaje lo haces así:


Panel1.Caption := 'Espere...';
Panel1.Refresh;

Esperar := true;

Panel1.Caption := 'Gracias!';


Tan pronto asignes true a Esperar, el evento OnMessage se comerá todos los mensajes que se envían a la aplicación (con el efecto de desactivarla) y sólo volverá a responder hasta recibir el mensaje WM_KEYDOWN (tecla oprimida).

Bye