[Lazarus-es] Refresh no funciona

francisco prieto fajprieto en gmail.com
Mar Ago 4 18:30:30 CEST 2015


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


More information about the Lazarus-es mailing list