Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   mensaje no se cierra cuando inicio un programa (https://www.clubdelphi.com/foros/showthread.php?t=73194)

granodetoro 07-04-2011 01:40:54

mensaje no se cierra cuando inicio un programa
 
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:

Código Delphi [-]
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 02:08:38

¿Y cual es el problema?


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




.

granodetoro 07-04-2011 02:21:28

muchas gracias ahora puedo poner de que lenguaje quiero tratar

Caro 07-04-2011 04:20:41

Cita:

Empezado por Casimiro Notevi (Mensaje 396118)
¿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.

Cita:

Empezado por granodetoro (Mensaje 396116)
................ 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.

Código Delphi [-]
//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

Código Delphi [-]
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 22:16:41

que es band y donde esta?

es que soy novato

oscarac 07-04-2011 22:24:49

no es carol es caro


La franja horaria es GMT +2. Ahora son las 19:38:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi