Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 10-09-2021
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
hola!!

el problema que te surge es porque al activar el TIMER se inicia una especie de "ejecución en paralelo" sin llegar a ser un hilo como tal, y mientras en el hilo principal del programa entras en un bucle sin esperas y sin darle descanso a la CPU, a ejecutar el proceso del timer.

Esto lo puedes soluciona llamando a application.processmessages en el bucle de espera, pero el problema que te va a surgir es que si ejecutas el bucle muy rápido, llamando a processmessages continuamente sin esperas intermedias puedes llegara a saturar el S.O., Para evitar eso, te recomiendo que pongas además un sleep


Prueba con este código:
Código Delphi [-]
procedure TForm2.Button2Click(Sender: TObject);
var
  i, Nrep: Integer;
begin
  i := StrToInt(Edit1.Text);
  for Nrep := 0 to 5 do begin
    Label2.Caption := format('Ciclo #%d:', [Nrep]);
    Timer1.Enabled := True;
    N := 0;
    while (n < i) do begin
      application.processMessages;
      // entra en modo sleep y el S.O. cambia el foco de la CPU a otros procesos, evitando sobrecargar el sistema
      sleep(200);
    end;
    Timer1.Enabled := False;
  end;
  Label2.Caption := 'Parado';
end;
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
Que es mas Rapido While,For,Repeat JerS OOP 18 16-06-2011 19:58:26
Interrumpir un ciclo Repeat - Until FGarcia Varios 10 07-01-2009 00:06:10
Bucle for de 2 en 2 douglas OOP 9 17-10-2007 15:55:53
Duda sobre variable en un Bucle Repeat gerupc Varios 9 21-07-2007 02:44:34
bucle dentro de un bucle Cosgaya Varios 2 06-06-2005 07:05:16


La franja horaria es GMT +2. Ahora son las 16:47:10.


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