<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><br><br>--- El <b>lun 20-may-13, Héctor F. Fiandor Rosario <i><hfiandor@infomed.sld.cu></i></b> escribió:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>De: Héctor F. Fiandor Rosario <hfiandor@infomed.sld.cu><br>Asunto: Re: [Lazarus-es] about delay<br>A: "Spanish version of Lazarus List" <lazarus-es@lists.lazarus.freepascal.org><br>Fecha: lunes, 20 de mayo de 2013, 21:27<br><br><div>
<div>
<div><font face="Arial" size="2">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.</font></div>
<div> </div>
<div><font face="Arial" size="2">redacte un label y cambiandole el caption, debia
salir el mensaje.</font></div>
<div> </div>
<div><font face="Arial" size="2">finalmente, siguiendo las indicaciones de
german, ulises y otros y la cosa quedo así</font></div>
<div> </div>
<div><font face="Arial" size="2"> lSecuencia.Caption:='Terminé prorrateo de
indirectos Com';<br> Application.ProcessMessages;<br>
sleep(3000);<br> 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.</font></div>
<div> </div></div></div></blockquote><div id="yiv2016535198"><div><div><br></div><div>Hola Héctor,</div><div><br></div><div>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:</div><div><br></div><div>En lugar de:</div><div><font face="Arial" size="2"><br></font></div><div>
<font face="Arial" size="2"> lSecuencia.Caption:='Terminé prorrateo de
indirectos Com';<br> Application.ProcessMessages;<br>
sleep(3000);</font>
</div><div><font face="Arial" size="2"><br></font></div><div>Harías:</div><div><br></div><div> Memo.Lines.Add(
<font face="Arial" size="2">'Terminé prorrateo de
indirectos Com'</font>); </div><div>
<font face="Arial" size="2"> Application.ProcessMessages;</font></div><div><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2">Al final quizás quieras agregar un método "log" a tu formulario, algo como esto:<br></font></div><div><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2">procedure Form1.Log(s:string);<br></font></div><div><font face="Arial" size="2">begin<br></font></div><div><font face="Arial" size="2"> Memo.Lines.Add(s);<br></font></div><div><font face="Arial" size="2"> Application.ProcessMessages;<br></font></div><div><font face="Arial" size="2">end;</font><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2">Luego al finalizar cada etapa harías algo como esto:<br></font></div><div><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2"> Log(</font>
<font face="Arial" size="2">'Terminé prorrateo de
indirectos Com');</font>
<font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2">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 :)<br></font></div><div><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2">Saludos.<br></font></div><div><font face="Arial" size="2"><br></font></div><div><font face="Arial" size="2">Jesus Reyes A.<br></font></div></div></div></td></tr></table>