Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 16-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Lo primero es permitir que la "parada" se produzca. Mientras ejecutas un bucle, el resto de la aplicación queda congelada, así que no podríamos indicarle que parase de ninguna manera, ni pulsando un botón, ni una tecla, etc ... así que tenemos que dejar "respirar" a la aplicación. Esto podemos hacerlo de 2 maneras diferentes: usando threads o metiendo dentro del bucle la función "Application.Processmessages".

Yo para un bucle que se tiene que ejecutar "indefinidamente", o por lo menos durante un largo periodo de tiempo, prefiero usar un thread. Este correría de forma paralela al resto de la aplicación. Dentro del thread haría algo como esto:
Código Delphi [-]
repeat
 
until Terminated; // Terminated es una propiedad del objeto TTHread
De esta manera cuando quisiera finalizar el bucle solo tendría que llamar al método "Terminate" del TThread, y el se encargara de poner a TRUE la propiedad Terminated.

Por ejemplo:
Código Delphi [-]
MiThread:= TMiThread.Create;
MiThread.FreeOnTerminate:= TRUE;
ShowMessage('Pulsa aceptar para finalizar');
MiThread.Terminate;
Donde TMiThread seria una clase descendiente de TThread.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Como hago esto? IZO API de Windows 5 02-03-2007 20:37:38
Thread bendito thread...se me pierde la ventana Seba.F1 API de Windows 5 02-02-2006 00:16:30
Como hago esto en Delphi ? Markos1970 OOP 5 19-12-2005 15:40:29
como hago esto meosre MySQL 3 06-10-2005 17:14:09
Base de datos multi área (multi departamento) Al González Conexión con bases de datos 0 19-03-2004 16:27:14


La franja horaria es GMT +2. Ahora son las 05:30:48.


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
Copyright 1996-2007 Club Delphi