Delphi - Parar la ejecucion de un proceso

 
Vista:

Parar la ejecucion de un proceso

Publicado por Sharukh (4 intervenciones) el 31/01/2008 16:59:49
Hola he hecho un programita que borra por la red una carpeta que yo le especifique, pero suponiendo que quisiera parar el borrado no tengo la forma de hacerlo sino iendo al adminstrador de tareas y cerrar la aplicacion completa, cuando lo que en realidad me interesa es que el deje de hacer lo que le mande sin cerrar la aplicacion. Por tanto lo que necesito es el codigo para hacer un boton de parado. Espero me haya explicado bien, un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Parar la ejecucion de un proceso

Publicado por E.T. (1244 intervenciones) el 31/01/2008 17:09:17
Busca en google algo acerca de threads,(o treads) no recuerdo bien la palabra, esto te permite una ejecución de tu programa con dos bloques de codigo casi en paralelo en la misma aplicación, lo que debes hacer es declarar una variable publica de tipo boolean a la que accesarás desde el thread en un bucle el cual se ejecutará mientras sea true, luego en tu botón la puedas cambiar a false, cancelando así el bucle del thread, pues si no usas un thread la aplicación no te deja hacer nada hasta que ejecute todo el codigo de cierta función o procedimiento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parar la ejecucion de un proceso

Publicado por M@rceloL (42 intervenciones) el 01/02/2008 20:23:18
Bueno, una manera un tanto desprolija (por decir menos) es declarar una variable booleana y usar el Application.ProcessMessages.

Confieso que no lo he probado, pero sería algo así:

var Parar:Boolean;

repeat
  BorroUnArchivo;
  PreparoElSiguiente;
  Application.ProcessMessages;
until Parar;

En un botón que diría "Parar":

procedure Form1.Butto1OnClick(Sender:TObject);
begin
  Parar:=True;
end;

El process es para que la aplicación pueda procesar el click del botón.

Espero te sirva (y funcione ;).

Saludongos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar