Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Rellenar celdas al estilo excel (progresión aritmetica) (https://www.clubdelphi.com/foros/showthread.php?t=68905)

reevil 14-07-2010 06:57:07

Rellenar celdas al estilo excel (progresión aritmetica)
 
Hola.
El problema es el siguiente:
trato de hacer lo mismo que se hace en excel al seleccionar dos celdas (en una misma columna y cada una con un valor numerico diferente ) luego hacemos clic en editar -> rellenar celdas y automáticamente las celdas intermedias se rellenan. Algo así como sacar una tendencia en base a dos valores que pueden ser positivos o negativos.

Poniéndolo mas gráfico:

2
x1
x2
x3
10

pasa a ser

2
4
6
8
10

La idea es emular esto en un grid o similar, de hecho ya lo hace pero me gustaría saber si existe alguna forma mas elegante y/o rápida, pues lo que yo hice fue tomar los dos valores, determinar cual es mayor (para saber si sera un incremento o un decremento) sacar la diferencia de esos numeros y dividirla entre los espacios a rellenar y con eso obtengo el incremento/decremento que debo aplicar al momento de rellenar las celdas y ya solo basta recorrerlas con un for o while y asignarle el valor de la celda anterior + o - el valor del incremento o decremento.

Supongo que hay algo mejor que lo que hago yo pues excel lo hace inmediato. :D

Saludos.

duilioisola 14-07-2010 09:09:53

Pues el algoritmo parece correcto y eficiente
- buscar diferencia
- buscar cantidad de celtas
- dividir diferencia / cantidad de celtas
- recorrer las celdas sumando esta división

No se a que te refieres con que "Excel lo hace inmediato".

Si lo que te falla es la velocidad, puede que estés trabajando con un componente lento o que estés haciendo las lecturas/escrituras directamente en el archivo de disco.

Trata de trabajár en memoria con los datos.

reevil 14-07-2010 09:33:46

Hola, gracias por responder.
En efecto lo que busco es algo mas de velocidad (mas que nada como capricho pues la demora es en realidad poca) ya que trabajando con 2000 o mas datos si se nota una leve pausa en el programa y en excel no. Para las pruebas que he realizado lo implemente con los componentes Grid y DBGrid.
Saludos.


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

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