Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Repetir una secuencia de comandos sin paralizar la actualización visual!!! (https://www.clubdelphi.com/foros/showthread.php?t=6186)

DarkByte 22-12-2003 20:37:31

Repetir una secuencia de comandos sin paralizar la actualización visual!!!
 
Hola!!, estoy haciendo un programa que tiene que cerrar un programa si lo encuentra abierto. Para ello utilizo el truco 290 de trucomanía y, en el evento OnActivate del form he puesto

var
CondicionNula : Boolean;
begin
CondicionNula := False;
Repeat
CierraExe ('Programa.exe');
Until
CondicionNula = True;

Y me funciona, pero me detiene la actualización gráfica del form, Me gustaría saber si hay algún método de hacer lo que pretendo y que permita que todo siga "rulando" sin problemas. He oido hablar de los bucles, pero no se muy bien qué son ni como funcionan.

Gracias por adelantado, espero vuestra ayuda

delphi.com.ar 22-12-2003 20:39:30

Utiliza un Application.ProcessMessages para cada iteración del bucle.

Saludos!

DarkByte 22-12-2003 20:45:50

Gracias delphi.com.ar, pero el problema es que ni siquiera se lo que es un bucle de ejecución:confused:, he oido hablar de ellos, pero yo siempre he usado el repeat->until. ¿Qué tengo que hacer con el Application.ProcessMessages?, ponerlo en el repeat??

Disculpe mi ignorancia.

delphi.com.ar 22-12-2003 20:48:14

Eso, ponelo dentro del repeat..until.
Código:

var
Repeat
  CierraExe ('Programa.exe');
  Application.ProcessMessages;
Until ...

Saludos!

DarkByte 22-12-2003 20:49:47

:eek: Funciona!!, muchas gracias!!. Va perfectamente, gracias por la rapidez de la respuesta y felíz navidad!!

DarkByte 22-12-2003 20:51:12

Una última pregunta... ¿qué hace exactamente el process messages?

delphi.com.ar 22-12-2003 20:58:59

Ejecuta todos los eventos de la aplicación que estan en cola, entre ellos los que dibujan las ventanas.

Saludos!

DarkByte 22-12-2003 21:00:05

Muchas gracias, ya se algo más.


La franja horaria es GMT +2. Ahora son las 05:16:12.

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