PDA

Ver la Versión Completa : mensaje no se cierra cuando inicio un programa


granodetoro
07-04-2011, 00:40:54
hola a todos. bueno tengo un problema tengo un progress bar que funciona y entonces cuando inicia el programa pongo un showmessage que dice tiene un limite de tiempo para usar el programa y quiero que el showmessage se cierre cuando doy clic en la x miren mi codificacion mas abajo:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
progressbar1.Position :=progressbar1.Position+1;
if progressbar1.Position=800 then close;

showmessage('tiene un limite de tiempo para usar el programa ');

end;

end.

ayuda por favor

Casimiro Notevi
07-04-2011, 01:08:38
¿Y cual es el problema?


Por cierto, recuerda poner el código entre etiquetas, ejemplo:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png


.

granodetoro
07-04-2011, 01:21:28
muchas gracias ahora puedo poner de que lenguaje quiero tratar

Caro
07-04-2011, 03:20:41
¿Y cual es el problema?


Hola Casimiro, por el codigo que ha puesto, el mensaje se muestra una y otra ves ya que el showmessage esta dentro del timer.

................ entonces cuando inicia el programa pongo un showmessage que dice tiene un limite de tiempo para usar el programa y quiero que el showmessage se cierre cuando doy clic en la x
.................


Para que no ocurra eso no pongas el showmessage dentro del timer, a no ser con una banderita para que se ejecute solo una ves, pero corremos el riesgo de que el usuario tarde en presionar la X y se siga mostrando el mensaje varias veces según al tiempo que le hayas dado al timer.

Puedes utilizar el evento OnActivate, para que te muestre el mensaje despues de cargar el form.


//con una banderita para que se ejecute solo una ves
procedure TForm1.FormActivate(Sender: TObject);
begin
if band then
begin
showmessage('tiene un limite de tiempo para usar el programa ');
band := false;
end;
end;


o también puedes enviar un mensaje con PostMessage (http://winapi.conclase.net/curso/?winfun=PostMessage)


const
AfterShow = WM_USER + 1;
...............................
...............................
procedure After_Show(var Msg: TMessage); message AfterShow;
...................................
procedure TForm1.After_Show(var Msg: TMessage);
begin
showmessage('tiene un limite de tiempo para usar el programa ');
end;

procedure TForm1.FormShow(Sender: TObject);
begin
PostMessage(Handle, AfterShow, 0, 0);
end;


Saluditos

granodetoro
07-04-2011, 21:16:41
que es band y donde esta?

es que soy novato

oscarac
07-04-2011, 21:24:49
no es carol es caro