Buen día, jóvenes, espero que se estén divirtiendo mucho.
Les platico. Tengo una forma con alrededor de 10 TDbGrid's, repartidas en varias pestañas. Algunas de ésas rejillas tienen muchas columnas, otras pocas, algunos muchos datos y otros menos. Pero cada vez que le cambio el tamaño, requiero que se ajusten TODAS las rejillas al nuevo tamaño de la forma, independientemente de su nombre o de su contenido. ¿Podrían colaborarme un poco con ideas y/o código de solución?
Ya intenté la solución que se plantea en algunos posts de Delphi.About, pero no me sirven aún y a pesar de adaptarlos hasta la saciedad.
Agradeciendo de antemano.
[RESUELTO] Una forma, muchos TDbGrid's..., y cómo ajustarlos.
Comenzado por
TiammatMX
, nov 25 2011 11:59
6 respuestas en este tema
#1
Escrito 25 noviembre 2011 - 11:59
#2
Escrito 25 noviembre 2011 - 12:57
Hola TiammatMX, has de plantearte como quieres su visualización, te recomendaria que pusieses paneles, por cada 2 o tres grids y si es de doa, 1 en align top o Botton y el otro en cliente, en los paneles igual que los Grids, usando la propiedad alingn, creo que te puedes hacer una idea. Espero sinceramente que te ayude.
#3
Escrito 25 noviembre 2011 - 01:12
Como bien dice Desart, tienes que plantearte primero de todo cómo quieres ver la pantalla. Una vez decidido esto, tienes que jugar con paneles, con las propiedades align y alignement y/o anchors,.....
Nos leemos
Nos leemos
#4
Escrito 25 noviembre 2011 - 01:18
El problema es si ya está todo montado, de lo contrario la solución es muy simple, un TFrame con un grid sirve de Base y de allí heredas el resto, luego con cambiar propiedades en la base se propagaría al resto.
Una opción sería recorrer los componentes, aislar los dbGrids, y cambiar las propiedades que necesitas.
Este mismo código lo podrías poner en el evento OnResize del form.
Saludos
Una opción sería recorrer los componentes, aislar los dbGrids, y cambiar las propiedades que necesitas.
delphi
procedure TForm1.Button1Click(Sender: TObject); var k: integer; begin for k := 0 to self.ComponentCount - 1 do if self.Components[k].ClassType = TDbGrid then begin TDbGrid(Components[k]).Width = self.Width; //cambias las propiedades que necesites cambiar end; end;
Este mismo código lo podrías poner en el evento OnResize del form.
Saludos
#5
Escrito 25 noviembre 2011 - 02:44
Gracias por las aportaciones. No puedo meterle más componentes, la forma ya me la dieron hecha y no puedo hacerle nada más, excepto por código...
En los tips de DelphiAbout vienen un par de ideas que se ajustan a lo que necesito PERO el problema principal es que como se trabajan sobre TADOQuery's y no sobre TADOTable's no me es posible implementarlos. Necesito más ideas, por favor...
En los tips de DelphiAbout vienen un par de ideas que se ajustan a lo que necesito PERO el problema principal es que como se trabajan sobre TADOQuery's y no sobre TADOTable's no me es posible implementarlos. Necesito más ideas, por favor...
#6
Escrito 25 noviembre 2011 - 03:29
El código que te pasé debería servirte, lo utilizas en el evento OnResize del form y puede cambiar las propiedades que necesites (top, widht, left, etc);
Saludos
Saludos
#7
Escrito 25 noviembre 2011 - 03:41
El código que te pasé debería servirte, lo utilizas en el evento OnResize del form y puede cambiar las propiedades que necesites (top, widht, left, etc);
Saludos
Lo acabo de probar y funciona perfecto.
Saludos