Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Crear columnas en runtime (https://www.clubdelphi.com/foros/showthread.php?t=40152)

Pedro-Juan 08-02-2007 12:43:25

Crear columnas en runtime
 
Hola a tod@s.

¿Alguien podría decirme donde puedo encontrar rutinas para crear y eliminar columnas de un dbGrid en runtime?
Utilizo delphi5 e Interbase.
En la ayuda de delphi sólo encuentro el modo de hacerlo en tiempo de diseño.

Muchas gracias, un saludo.

Bicho 08-02-2007 13:15:49

Hola, quizá éste hilo te pueda ayudar.

Saludos

Pedro-Juan 08-02-2007 13:31:42

Crear/Eliminar columnas de dbGrid
 
Muchas gracias bicho.

Lo que necesito es crearnuevas/eliminar columnas pero de un dbgrid, independientemente de la bbdd.

Utilizo componentes externos a delphi y la propiedad visible de TColumn (cuando cambio en runtime de true a false y viceversa) me provoca problemas con la visualización de la ScrollBars. Se me ha ocurrido que tal vez lo evite si en vez ocultar/mostrar la columna, la creo o la elimino (todo en runtime).

Muchas gracias

xavinet 08-02-2007 13:51:35

Que componentes usas?
 
Hola Pedro-Juan!

Me suena que el dbgrid no permite crear y eliminar columnas, solo permite visaulizarlas o no. Dedido a que coge por defecto las columnas de la query que tiene enlazada.

Pero si especificas los componentes a lo mejor alguien te guiará en tu camino ;)

Saludos!

Pedro-Juan 08-02-2007 14:07:39

colunmas en runtime
 
Muchas gracias xavinet.

Utilizo AlphaControls (www.alphaskins.com).

En realidad el dbGrid es nativo de delphi, pero está "Skineado" por una utilidad (dbGridAdapter) de estos componentes (tienen muchos y bonitos componentes y está, creo, en proyecto, pero no tienen un componente dbGrid).

Había pensado que de la misma manera que se crean/eliminan las columnas cuando pulsas el elipsis de la propiedad columns del dbGrid en tiempo de diseño, se podría hacer también en runtime, pero no encuentro nada.

Muchas gracias y un saludo.

ContraVeneno 08-02-2007 17:51:46

¿Y compilaste las AlphaControls para que te habilite el uso del DBgrid?

Cita:

Empezado por Página AlphaControls
For using DBGrids with TsGridAdapter component (TDBGrid, TRxDBGrid, TDBGridEH and TwwDBGrid are supported now) just uncomment appropriate key in the sDefs.inc file. That's all, in the run-time a grids will be skinned.


Lepe 08-02-2007 19:47:16

¿qué problema tienes exactamente con las scrollbars?

Lo digo porque ocultar o destruir, para la visualización es lo mismo, de hecho lo que hace es asignar cero a su width.

Saludos

Pedro-Juan 08-02-2007 20:05:23

Todo correcto
 
Gracias ContraVeneno
Está todo correcto, los dbGrid se "eskinean" bien, el problema ocurre cuando desde la propia aplicación, en Opciones, pongo a False la Visible de alguna columna, y ocurre con todas. Pero cuando lo dejo en las columnas que están creadas, es decir, las que están en la propiedad Columns, entonces se visualiza todo bien.

Hola, Lepe.
El problema es que en la zona de HorScrollBar, que tiene la propiedad visible a False porque no necesito ese desplazamiento, permanece como fondo lo que había en la pantalla anterior.
Pero cuando en runtime, desde la propia aplicación, pongo las columns que están creadas en diseño, o sea, ninguna a False, se ve todo bien.
Por eso pienso que tal vez creando/Eliminando en runtime podría solucionarse el problema.

Muchas gracias.

Lepe 09-02-2007 12:38:18

Por probar que no quede.

Igual que creas en diseño, puedes crearlos en ejecución, pero antes de intentar liar el proceso, intenta llamar a dbgrid.Columns.RebuildColumns, que reconstruye en tiempo de ejecución, todas las columnas a partir del dataset asociado.

saludos


La franja horaria es GMT +2. Ahora son las 17:00:34.

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