[Lazarus-es] Refresh no funciona

Martin Gomez mmgomez en gmail.com
Mar Ago 4 21:28:48 CEST 2015


Tocando de oído, quizas puedas forzar un repintado con Invalidate() (en
Delphi funcionaba)

2015-08-04 13:30 GMT-03:00 francisco prieto <fajprieto en gmail.com>:

> Tengo el siguiente código
>
> procedure TfrmPesaje.UpdPeso(cLectura:String);
> var
>   lcTramas:TStringList;
>
> lnIndice,lnNeto,lnNegativo,lnFueraRango,lnFueraEqui,lnTeclaAd,lnCantTramas:integer;
>   lcEstadoA,lcEstadoB,lcEstadoC,lcPeso,lcTara,lcDecimales,lcLectura:string;
> begin
>   lcEstadoA:='';
>   lcEstadoB:='';
>   lcEstadoC:='';
>   lcPeso:='';
>   lcTara:='';
>   lcTramas:= TStringList.Create;
>   Split('|', cLectura, lcTramas);
>   lnCantTramas:=lcTramas.count;
>   if lnCantTramas=5 then
>      begin
>        lcEstadoA:=lcTramas.Strings[1];
>        lcEstadoB:=lcTramas.Strings[2];
>        lcEstadoC:=lcTramas.Strings[3];
>        lcPeso:=copy(lcTramas.Strings[4],1,6);
>        lcTara:=copy(lcTramas.Strings[4],7,6);
>        {Analisis Estado A}
>        lcEstadoA:=HextoBin(lcEstadoA);
>        lcDecimales:=copy(lcEstadoA,6,3);
>        case lcDecimales of
>             '010':lnPesoComa:=0;
>             '011':lnPesoComa:=1;
>             '100':lnPesoComa:=2;
>             '101':lnPesoComa:=3;
>             '110':lnPesoComa:=4;
>        else
>             lnPesoComa:=0;
>        end;
>        {Analisis Estado B}
>        lcEstadoB:=HextoBin(lcEstadoB);
>        lnNeto:=StrToInt(copy(lcEstadoB,8,1));
>        lnNegativo:=StrToInt(copy(lcEstadoB,7,1));
>        lnFueraRango:=StrToInt(copy(lcEstadoB,6,1));
>        lnFueraEqui:=StrToInt(copy(lcEstadoB,5,1));
>        {Analisis Estado C}
>        lcEstadoC:=HextoBin(lcEstadoC);
>        lnTeclaAd:=StrToInt(copy(lcEstadoB,5,1));
>        {Calculos Finales}
>        lnPesoTara:=StrToInt(lcTara)/(Exp(LN(10)*lnPesoComa));
>        lnPesoTot:=StrToInt(lcPeso)/(Exp(LN(10)*lnPesoComa));
>        if lnNegativo=1 then
>           lnPesoTot:=lnPesoTot*(-1);
>        {Actualizo campo de Peso Actual}
>        txtPesoAct.Text:=FloatToStr(lnPesoTot);
>        txtPesoAct.Refresh;
>        application.ProcessMessages;
>      end;
>
> Que se ejecuta por cada lectura del puerto serie.
>
> txtPesoAct es una caja de texto en la cual pongo el peso de la balanza.
>
> Si solo hago el Refresh no se refresca el control...
> Si le agrego application.ProcessMessages tampoco se refresca el control.
>
> El control solo se refresca cuando hago un showmessage desde otro control.
>
> Tengo otra pantalla que tiene un codigo similar pero el que recibe la info
> es una lista, en ese caso funciona sin inconvenientes...
>
> Espero sus comentarios.
>
> Pancho
> Córdoba
> Argentina
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>


-- 
​
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.
​ ​
*Linus Torvalds*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20150804/d9d7ce33/attachment-0002.html>


More information about the Lazarus-es mailing list