Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con la velocidad de actualizacion de datos en mi programa (https://www.clubdelphi.com/foros/showthread.php?t=44808)

Peterman 14-06-2007 23:05:35

Problema con la velocidad de actualizacion de datos en mi programa
 
1 Archivos Adjunto(s)
Hola camaradas,

miren, estoy haciendo un cliente OPC; da igual que sepan lo que es, el caso es que es un programa en el que hay que ir actualizando cada 1 segundo unos datos obtenidos via red...el caso es que tengo un ejemplo hecho en visual studio y basado en la win32 que funciona a las mil maravillas pero he notado que en nuestro entorno es realmente lenta la interfaz...

Lo que hago es utilizar un Ttime y cada segundo tiene que actualizar en un memo unos 20 o 30 valores... el caso es que es demasiado lento actualizando... no da tiempo ni a leerlos porque cuando termina de pintarlos ya esta empezando otra ver a pintarlos practicamente... es una mierda.

Buenas...miren la imagen que va contenida en el .zip que les he enviado. Los datos que tengo que actualizar son solo los de una columna...


Haber si me pueden ayudar, ya que esto realmente me compromete...tengo que entregar el programa la semana que viene y todo funciona a las mil maravillas excepto eso...

¿¿¿¿¿ Como actualizar muchos edit o muchas lineas de un memo o lo que sea con velocidad suficiente para que la aplicacion sea vistosa????


Gracias a todos, amigos

Mick 14-06-2007 23:41:20

El objeto tipo Lines del memo asi como cualquier objeto derivadode de la clase TStrings tienen un metodo llamado BeginUpdate, el begin update impide que se vaya repitando los campos en las listas poco a poco a medida que se cambian (bloquea los eventos que avisan de modificaciones en las listas).

Código:

// Bloquear los eventos de redibujado
Memo.Lines.BeginUpdate;
try
  Realizar las multiples modificaciones que sean ....
finally
  // Desbloquea y se escribiran en pantalla todas las modificiones de golpe 
  Memo.Lines.EndUpdate;
end;

De todas formas aunque esto acelerara un poco, si hay columanas y filas y se actualizan tan frecuentemente, el memo no es el objeto mas adecuado para utilizar, yo usaria un TCustomGrid o un TStrigGrid quizas ,aunque tamien hay otras posibilidades, todo depende de los detalles de lo que se quiera hacer y de como tengamos guardados los datos a mostrar.

Saludos


La franja horaria es GMT +2. Ahora son las 02:07:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi