<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">Segun lo que recuerdo, Update era el mas "lento" pero el más seguro de los 4 que mencionas.</div><div class="gmail_default" style="font-family:tahoma,sans-serif">Esa función que pegaste es directamente un evento? O es llamada desde el evento en sí?</div><div class="gmail_default" style="font-family:tahoma,sans-serif">En caso que sea una función que llamas a mano, probá mandar txtPesoAct.Update desde fuera, al salir... puede que el optimizador interprete que ahí no tenes acceso al GUI (ni idea realmente, pero así lo tengo que hacer en C#, o llamar un delegate() que acceda a la parte gráfica cuando quiero forzarlo)</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-08-04 16:46 GMT-03:00 francisco prieto <span dir="ltr"><<a href="mailto:fajprieto@gmail.com" target="_blank">fajprieto@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Martin,<br><br></div>Sigue sin responder...<br><br></div><div>Pero ojo vi que lo que no se refresca es el valor porque si cambias por ejemplo de enabled a disabled funciona...<br><br></div><div>Ya probe con<br><br></div><div>Refresh<br></div><div>Repaint<br></div><div>Update<br></div><div>Invalidate<br><br></div><div>e incluso agregue un timer que haga el refresco independientemente si cambia el valor o no.<br><br></div><div>He podido comprobar que si pongo un showmessage y en modo debug funciona... pero si le quito el modo debug hasta que no le doy showmessage desde otro campo no se actualiza el valor.<br><br></div><div>Probe incluso con el Texout de canvas y NO ANDA... Hasta se me ocurrio ponerlo invisible y luego visible (ya que este es un error que da a veces en VFP y no anda de todos modos).<br><br></div><div>Alguna otra sugerencia?<br><br></div><div>Saludos,<br><br></div><div>Pancho<br></div><div>Córdoba<br></div><div>Argentina<br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">El 4 de agosto de 2015, 16:28, Martin Gomez <span dir="ltr"><<a href="mailto:mmgomez@gmail.com" target="_blank">mmgomez@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">Tocando de oído, quizas puedas forzar un repintado con Invalidate() (en Delphi funcionaba)</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>2015-08-04 13:30 GMT-03:00 francisco prieto <span dir="ltr"><<a href="mailto:fajprieto@gmail.com" target="_blank">fajprieto@gmail.com</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Tengo el siguiente código<br><br>procedure TfrmPesaje.UpdPeso(cLectura:String);<br>var<br> lcTramas:TStringList;<br> lnIndice,lnNeto,lnNegativo,lnFueraRango,lnFueraEqui,lnTeclaAd,lnCantTramas:integer;<br> lcEstadoA,lcEstadoB,lcEstadoC,lcPeso,lcTara,lcDecimales,lcLectura:string;<br>begin<br> lcEstadoA:='';<br> lcEstadoB:='';<br> lcEstadoC:='';<br> lcPeso:='';<br> lcTara:='';<br> lcTramas:= TStringList.Create;<br> Split('|', cLectura, lcTramas);<br> lnCantTramas:=lcTramas.count;<br> if lnCantTramas=5 then<br> begin<br> lcEstadoA:=lcTramas.Strings[1];<br> lcEstadoB:=lcTramas.Strings[2];<br> lcEstadoC:=lcTramas.Strings[3];<br> lcPeso:=copy(lcTramas.Strings[4],1,6);<br> lcTara:=copy(lcTramas.Strings[4],7,6);<br> {Analisis Estado A}<br> lcEstadoA:=HextoBin(lcEstadoA);<br> lcDecimales:=copy(lcEstadoA,6,3);<br> case lcDecimales of<br> '010':lnPesoComa:=0;<br> '011':lnPesoComa:=1;<br> '100':lnPesoComa:=2;<br> '101':lnPesoComa:=3;<br> '110':lnPesoComa:=4;<br> else<br> lnPesoComa:=0;<br> end;<br> {Analisis Estado B}<br> lcEstadoB:=HextoBin(lcEstadoB);<br> lnNeto:=StrToInt(copy(lcEstadoB,8,1));<br> lnNegativo:=StrToInt(copy(lcEstadoB,7,1));<br> lnFueraRango:=StrToInt(copy(lcEstadoB,6,1));<br> lnFueraEqui:=StrToInt(copy(lcEstadoB,5,1));<br> {Analisis Estado C}<br> lcEstadoC:=HextoBin(lcEstadoC);<br> lnTeclaAd:=StrToInt(copy(lcEstadoB,5,1));<br> {Calculos Finales}<br> lnPesoTara:=StrToInt(lcTara)/(Exp(LN(10)*lnPesoComa));<br> lnPesoTot:=StrToInt(lcPeso)/(Exp(LN(10)*lnPesoComa));<br> if lnNegativo=1 then<br> lnPesoTot:=lnPesoTot*(-1);<br> {Actualizo campo de Peso Actual}<br> txtPesoAct.Text:=FloatToStr(lnPesoTot);<br> txtPesoAct.Refresh;<br> application.ProcessMessages;<br> end; <br><br></div>Que se ejecuta por cada lectura del puerto serie.<br><br></div>txtPesoAct es una caja de texto en la cual pongo el peso de la balanza.<br><br></div>Si solo hago el Refresh no se refresca el control...<br></div>Si le agrego application.ProcessMessages tampoco se refresca el control.<br><br></div>El control solo se refresca cuando hago un showmessage desde otro control.<br><br></div>Tengo otra pantalla que tiene un codigo similar pero el que recibe la info es una lista, en ese caso funciona sin inconvenientes...<br><br></div>Espero sus comentarios.<br><br></div>Pancho<br></div>Córdoba<br></div>Argentina<br></div>
<br></div></div>_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" rel="noreferrer" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><span style="font-size:small;font-family:tahoma,sans-serif"><div style="display:inline"></div></span><font style="font-size:small" face="tahoma, sans-serif">Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.<div style="display:inline"> </div></font><i style="font-size:small;font-family:tahoma,sans-serif">Linus Torvalds</i><br></div></div>
</font></span></div></div>
<br>_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" rel="noreferrer" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" rel="noreferrer" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><span style="font-size:small;font-family:tahoma,sans-serif"><div style="display:inline"></div></span><font face="tahoma, sans-serif" style="font-size:small">Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.<div style="display:inline"> </div></font><i style="font-size:small;font-family:tahoma,sans-serif">Linus Torvalds</i><br></div></div>
</div>