[Lazarus-es] about delay

Jesus Reyes jesusrmx en yahoo.com.mx
Mar Mayo 21 02:56:16 CEST 2013



--- El lun 20-may-13, Héctor F. Fiandor Rosario <hfiandor en infomed.sld.cu> escribió:

De: Héctor F. Fiandor Rosario <hfiandor en infomed.sld.cu>
Asunto: Re: [Lazarus-es] about delay
A: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org>
Fecha: lunes, 20 de mayo de 2013, 21:27



 
 



Estimados colegas, para cerrar este capitulo les 
contare que mi interes es que aparezcan, al terminar un grupo de operaciones, un 
letrero que lo indique, hasta que se realize la última.
 
redacte un label y cambiandole el caption, debia 
salir el mensaje.
 
finalmente, siguiendo las indicaciones de 
german, ulises y otros y la cosa quedo así
 
  lSecuencia.Caption:='Terminé prorrateo de 
indirectos Com';
  Application.ProcessMessages;
  
sleep(3000);
 y con esto, hizo lo que quería, que apareciera el mensaje 
y diera un tiempo para leerlo, y despues siguiera trabajando hasta el  
proximo mensaje.
 
Hola Héctor,
Otra forma de hacerlo es usar un TMemo en lugar de un TLabel, en un label solo puedes mostrar un mensaje de avance a la vez (y quizás es por eso que quieres introducir una demora y dar la oportunidad de leer el mensaje antes del siguiente), en un memo puedes ir agregando líneas de texto con el mensaje de avance conforme las etapas en tus cálculos vayan progresando, por ejemplo:
En lugar de:

  lSecuencia.Caption:='Terminé prorrateo de 
indirectos Com';
  Application.ProcessMessages;
  
sleep(3000);

Harías:
  Memo.Lines.Add(
'Terminé prorrateo de 
indirectos Com'); 
  Application.ProcessMessages;
Al final quizás quieras agregar un método "log" a tu formulario, algo como esto:

procedure Form1.Log(s:string);
begin
  Memo.Lines.Add(s);
  Application.ProcessMessages;
end;

Luego al finalizar cada etapa harías algo como esto:

  Log(
'Terminé prorrateo de 
indirectos Com');


La ventaja que tiene esto es que no introduces demoras artificiales en el código y el usuario aun puede ver que los cálculos se van haciendo a la velocidad real. La desventaja es que probablemente un TMemo ocupe mas espacio que un TLabel :)

Saludos.

Jesus Reyes A.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20130520/b9e451ce/attachment-0002.html>


More information about the Lazarus-es mailing list