[Lazarus-es] Refresh no funciona

francisco prieto fajprieto en gmail.com
Mar Ago 4 21:46:38 CEST 2015


Martin,

Sigue sin responder...

Pero ojo vi que lo que no se refresca es el valor porque si cambias por
ejemplo de enabled a disabled funciona...

Ya probe con

Refresh
Repaint
Update
Invalidate

e incluso agregue un timer que haga el refresco independientemente si
cambia el valor o no.

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.

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).

Alguna otra sugerencia?

Saludos,

Pancho
Córdoba
Argentina

El 4 de agosto de 2015, 16:28, Martin Gomez <mmgomez en gmail.com> escribió:

> 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*
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20150804/91567781/attachment-0002.html>


More information about the Lazarus-es mailing list