Este artículo está destinado principalmente para programadores que usan Borland C ++ Builder. El componente TChart es un medio poderoso para agregar visualización a los programas. Desafortunadamente, cargar varios cientos de puntos en una tabla usando miembros convencionales de la clase es extremadamente lento. Este artículo, como sugiere el título, proporciona una forma de evitar este problema.

Normalmente, los puntos se agregan usando AddXY (anXValue, anYValue, aLabel, aColor). Esta función miembro funciona bien cuando hay pocos puntos para agregar. Sin embargo, si hay una gran cantidad de puntos, esta función lleva un tiempo notablemente largo (vea la figura que muestra el tiempo necesario para cargar hasta 29,470 puntos de datos en una máquina de prueba).

Pasos

  1. 1 El truco es preasignar la memoria para los puntos en la serie de cuadros. No hay una función obvia en TSeries que hace esto, pero el FillSampleValues la función cumple la misma función al llenar la serie con un número conocido de puntos.
    • // cargar los datos en una secuencia de memoria
    • ms-> LoadFromFile ("datos");
    • // calcular el número de puntos
    • numpts = ms-> Seek (0, soFromEnd) / sizeof (cd);
    • // preasignar el espacio
    • Series1-> FillSampleValues ​​(numpts);
    • // cargar los datos en el gráfico
    • ms-> Position = ms-> Seek (0, soFromBeginning);
    • para (sin signo i = 0; i <numpts; i ++)
    • ms-> Read (& cd, numbytes);
    • Series1-> XValues-> Value [i] = cd.x;
    • Series1-> YValues-> Value [i] = cd.y;