Script - Redimensionar un grid en un formulario DDA

Creado por David Miralpeix, Modificado el Fri, 16 Feb 2024 a las 12:25 PM por David Miralpeix

Scripts varios

Cuando ponemos un grid en un formulario DDA, el mismo no sabe cómo redimensionarse adaptándose al tamaño del formulario.
Para ello podemos jugar con la matriz de redimensionamiento de los paneles contenedores y del propio grid. Solamente el control ahoraocx.cntPanel y el grid tienen las propiedades de redimensión que se van a detallar:
--resizeEnabled: habilita al control el funcionamiento de autoescalado o resize.
--ResizeV: (int) Número de posición vertical de la matriz de controles.
--ResizeH: (int) Número de posición horizontal de la matriz de controles.
--ResizeRestanteV: (bool) Indica si el grid crece hacia las las posiciones libres verticales.
--ResizeRestanteH: (bool) Indica si el grid crece hacia las las posiciones libres horizontales.

 

Ver código ejemplo


'Este ejemplo quita el grid del panel pnlMain, dejando sólo a los controles texto dentro de dicho panel.
'Luego se recorta el tamaño del panel para que llegue hasta el control textousuario2.
'a continuación se establece las propiedades de redimensión del grid
'Para finalizar, se mueve la posición del grid para forzar el autoajuste

sub show ()
ReDimensionarGrids
end sub

Sub ReDimensionarGrids
       If gForm.Controls("grdEntregas").Container.Name = "PnlMain" Then
       Set gForm.Controls("grdEntregas").Container = gForm ' cambiamos el contenedor panel por el formulario. El grid se dimensionará con el formulario y no con el panel
       'gForm.Controls("TextoUsuario")(2) es el nombre del último control por debajo de él solo está la grid.
        gForm.PnlMain.Height = gForm.Controls("TextoUsuario")(2).Top + 500
        gForm.PnlMain.ResizeV = 20
        gForm.PnlMain.ResizeRestanteV = False ' no crece hacia abajo, sólo en horizontal.

        With gForm.Controls("grdEntregas")
        .ResizeV = 30
        .ResizeEnabled = True
        .ResizeRestanteV = True ' crece hacia abajo, hasta la posición de la botonera
        .Move gForm.PnlMain.Left,400 + gForm.Eobjeto.height + gForm.PnlMain.Height,gForm.PnlMain.Width,gForm.Botonera.Top-( gForm.PnlMain.Top+gForm.PnlMain.Height+gForm.Eobjeto.Height+400)
       End With

      End If
End Sub


Autor: Daniel Ernesto Lutz Llano


¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo