FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Fragmentar/Paginar Resultado
Resulta que yo tengo un List con X cantidad de items. Estos, pueden oscilar desde 1 a 1000. Lo que yo quiciera hacer, es fragmentar o paginar estos items, por ejemplo, agruparlo cada 10 o 20 items.
Por ejempo, si el List.Count=100, entonces, quiciera agruparlo en 5 grupos de 20. Y asi, con cualquier valor de List.Count, una suerte de funcion, asi: Código:
function Paginar(ListCount:integer;Pagina:Integer):integer; //donde //ListCount:=List.Count; //Pagina:=Cantidad de Items por Pagina -20 -20 -20 -5 No se si se entiende lo que quiero hacer, pero no se me ocurre como. Alguna sugerencia o idea??? Saludos
__________________
|
#2
|
||||
|
||||
Entiendo muy bien lo que quieres, pero no me queda clara una cosa ¿A donde quieres enviar cada grupito?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
Cita:
Saludos
__________________
|
#4
|
||||
|
||||
Al igual que jhonny... me estaba preguntando... ¿cual es el objetivo de agrupar los elementos?
Yo estaba pensando en mantener el grupo en el mismo List. El truco consistiría en ordenarlos por grupo: elem1g1 elem2g1 ... elemNg1 - fin grupo 1 elem1g2 elem2g2 ... elemNg2 - fin grupo 2 De modo que lo que hay que recordar es la cantidad de grupos. Y no estar almacenando cada grupo por separado. La idea es para recorrer cada grupo se haga algo como (si quisieramos buscar los elementos del primer grupo. Siendo K la cantidad de grupos): Código:
for i := 1 to ((List.Count -1) div K) do begin ... lo que haya que hacer... end; Código:
.... TGroup = class(TList); ... TListGroup = class private FGroups: TList; FGroupsCount: integer; ... public AddToGroup(Group: integer; Elemento: string); ... end; Última edición por Delphius fecha: 03-08-2007 a las 20:39:00. |
#5
|
||||
|
||||
Lo que se me ocurrio es hacer lo siguiente:
Y si por ejemplo el List.Count=100 me funciona, pero no se me ocurre, como hacer cuando List.Count=105, tengo que resolver eso. Lo de los grupos lo habia pensado, pero tengo tan ordenado el tema de la lista que me da miedo cambiar el codigo. Saludos
__________________
|
#6
|
||||
|
||||
Mamu, hace tiempo tuve que manejar algo parecido a lo que tu buscas. Tenía que implementar el test Chi-Cuadrado que lo que hace es armar grupos (series) de elementos de una lista de números y con ellos calcula unos estadísticos.
Al algoritmo lo implementé con arrays dinámicos. Y me olvidaba de la creación de TList. Si estas interesado, te lo puedo enviar para que lo estudies. Yo lo que hice fue aplicar el artilugio que te comentaba anteriormente. Saludos, |
#7
|
||||
|
||||
Cita:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#8
|
||||
|
||||
SOLUCIONADO
Implemente esto como prueba y funciona perfecto, tal cual lo necesitaba. Luego lo voy a adaptar a una funcion.
Delphius es interesante el dato, y desde ya cuando quieras compartirlo, bienvenido sea. Saludos y Gracias a todos.
__________________
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Fragmentar Imagenes... | DarkDrakon | Gráficos | 1 | 01-03-2007 09:50:19 |
sql resultado | carols018 | MySQL | 2 | 23-11-2006 16:48:17 |
Como paginar una tabla de 2000 renglones | GCASTILLO | Internet | 0 | 03-10-2006 01:42:51 |
Resultado extraño... | vantta | C++ Builder | 5 | 01-02-2005 11:45:33 |
Paginar registros | JulioGO | PHP | 4 | 25-10-2004 01:50:32 |
|