Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   El mejor componente para... (https://www.clubdelphi.com/foros/showthread.php?t=18201)

Holderhek 04-02-2005 16:30:46

El mejor componente para...
 
Hola

He estado buscando y buscando el mejor componente para lo que quiero hacer y no logro encontrarlo (Quizas no logro encontrar las propiedades adecuaas a los componentes existented).

Seguramente alguno de ustedes conoce algun componente o configuracion para esto:

Tengo una base de datos, y dependiendo de la consultaque se haga, se van poblando tablas. Lo que estoy buscando es una tabla.

Intente con un TListView en modo vsReport, pero al agrear los campos (Ya que cada consulta tiene sus propios campos) estos se demoran en agregarse (Maximo 11 campos).
Uno ve como se va agregando campo a campo y definitivamente no quiero que pase. Quiero que el configurar los campos sea instantaneo.

Con un TStringGrid, la cofiguracion de campos (En verdad el agregar la primera fila y poniendo cono FixedRows:=1) es instantanea, pero no puedo agregar imagenes. (Eso creo).

Por lo tanto, lo que necesito es una tabla que:
  • Configure campos de forma instantanea.
  • Pueda agregar Imagenes (Desde un TImageList preferiblemente).
Bueno, tambien me gustaria (Pero seria un componente creado por alguien por que estoy 99% seguro que Delphi no tiene) que se pudieran agregar Items como un Arbol. Me explico; que sea un TTreeView mesclado con un TListView, o sea, que uno tenga la posibilidad de agregar un Item a un Item padre...
Por ejemplo:
Tengo la siguiente lista en la base de datos (Sobre series de anime):
Nombre | Numero Episodio | Resolucion
Hellsing 001 640x580
Hellsing 002 640x580
Hellsing 003 640x580
NGE 021 540x360
HGE 022 540x360
Y quiero que en la tabla se pueda ver asi:
Nombre | Numero Episodio | Resolucion
+ Hellsing | |
+ NGE | |
Y cuando uno hace click en algun grupo, se vea asi:
Nombre | Numero Episodio | Resolucion
- Hellsing | |
Hellsing | 001 | 640x580
Hellsing | 002 | 640x580
Hellsing | 003 | 640x580
+ NGE | |
Esto no es un requisito, pero si alguien conoce algun componente que haga bien eso, sera bienvenido.

Bueno, espero que se haya entendido y muchas gracias por su tiempo.
Saludos.

Héctor Randolph 04-02-2005 17:29:46

Cita:

Empezado por HolderHek
Uno ve como se va agregando campo a campo y definitivamente no quiero que pase. Quiero que el configurar los campos sea instantaneo.

Tal vez te convenga utilizar las funciones BeginUpdate y EndUpdate del componente TListView, estas funciones fueron diseñadas para inhabilitar el refresco de la lista mientras se actualiza. De esta forma se pueden modificar los elementos sin que se produzcan efectos visuales no deseados como el que comentas.

Justo antes de modificar los elementos comienzas el bloque con ListView.Items.BeginUpdate y cuando terminas la actualización cierras el bloque con ListView1.Items.EndUpdate, de esta forma no se verá en pantalla como se agregan los elementos y además le dará una mayor velocidad a la ejecución


Cita:

Empezado por Holderhek
Por lo tanto, lo que necesito es una tabla que:
  • Configure campos de forma instantanea.
  • Pueda agregar Imagenes (Desde un TImageList preferiblemente).
Bueno, tambien me gustaria (Pero seria un componente creado por alguien por que estoy 99% seguro que Delphi no tiene) que se pudieran agregar Items como un Arbol.

Bueno aqui esta el componente que buscas, te lo pongo y haber que opinión tienes de él

http://www.lischke-online.de/VirtualTreeview/VT.php

Un saludo

roman 04-02-2005 17:39:43

Voy a hacer una sugerencia con respecto al ListView aunque está un poco de más ya que definitivamente el control que te sugiere Héctor es el mejor.

El problema con el ListView no es de BeginUpdtae y EndUpdate, aunque ayudan en algo. Simplemente no está hecho para grandes cantidades de datos. Y desde luego el StringGrid no sirve de nada. Muy pocas veces lo he usado para algo, es un control verdaderamente horrible.

Sin embargo el ListView maneja lo que se llama modo virtual (OwnerData = true) y en este modo es igual de rápido que el VirtualTreeView que menciona Héctor, pero sin todas las bondades de presentación que este último presenta. En modo virtual tú no llenas al ListView de datos sino que simpleente le indicas cuántos elemento hay y programas su evento OnData. El ListView, conforme el usuario se desplaza por él, genera el evento OnData indicando el índice del item que debe desplegarse y es cuando asignas valores para ese ítem.

Yo he usado esto para desplegar resultados de consultas sql con miles de registros y funciona perfectamente bien.

Pero como te digo, además de que el VirtualTreeView funciona, por construcción, en modo virtual, se acerca más a lo que deseas (combinación de TreeVirew con ListView) y te permite insertar gráficos y sobre todo una presentación que puede ser muy impresionante (basta que veas los ejemplos que trae).

// Saludos

Holderhek 04-02-2005 21:46:41

Hola

Gracias por sus respuestas. Baje el TVirtualTree y lo instale. Pero no me funciono... y no se por que.

Tiene algun problema con Delphi 2005? hay que hacer algo aparte de hacer doble click en el installer?

Gracias nuevamente.
Saludos.

Holderhek 05-02-2005 04:09:58

Hola
No se preocupen, ya logre agregar el VT a la lista de componentes.
Saludos.


La franja horaria es GMT +2. Ahora son las 21:31:57.

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