[Lazarus-es] Refresh no funciona

Iván gmail iv.mesa.prg en gmail.com
Mie Ago 5 08:32:15 CEST 2015


Buenas.
A mi parecer el origen del problema debe ser la llamada de esa función.
Si estás leyendo datos desde un puerto serie, es posible que la lectura 
se realice mediante un nuevo hilo, para no bloquear el hilo principal de 
la aplicación mientras se reciben datos. Imagino que estarás usando 
algún componente.
Para acceder a los elementos de la GUI desde un hilo que no es el 
principal, hay que usar Synchronize(métodoqueaccedealaGUI) desde dentro 
del código que controla el nuevo hilo.
Si estás usando algún componente, tendrá algún mecanismo para que le 
pases una referencia de un método que quieras ejecutar.

Otra solución podría ser guardar en una variable public el peso en UpdPeso:
En lugar de txtPesoAct.Text := Float .... pones
PublicVar := Float....

Luego en un ontimer cada segundo puedes mirar si PublicVar tiene algo 
disinto de 0 y ponerlo en tu txtPesoAct.

Abrazos.



El 05/08/2015 a las 3:54, Jesus Reyes escribió:
> El mar 4-ago-15, francisco prieto <fajprieto en gmail.com> escribió:
>
>   > 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?
>>   
> No debería ser tan complicado, ni requerir de cosas sospechosas. Seguro algo esta por ahí fuera de lugar. A veces vale la pena dar un paso a tras e intentar otras cosas mas básicas. Por ejemplo, has tratado de reproducir el problema en un proyecto independiente? si es así, publícalo para intentarlo acá. Si en un proyecto simple no se puede reproducir, puedes aislar la parte necesaria de la aplicación para reproducir el problema y publicarla?
>
> Que versión de Lazarus (y revisión) usas? y de FPC?. En que sistema operativo? compilando el programa en que widgetset?. Perdón si pido datos que ya hayas especificado. Por cierto, con que frecuencia es llamado el metodo UpdPeso?, lnCantTramas es siempre 5?
>
> Jesus Reyes A.
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es





More information about the Lazarus-es mailing list