En este ejemplo veremos como, partiendo de un determinado panel, dividir el espacio en dos para asignar el control original en el nuevo que crearemos.
Esto es especialmente útil si, por ejemplo, necesitamos añadir un filtro a un grid ya existente o añadir algún tipo de sumatorio o control.
Para el siguiente ejemplo se parte que existe un panel llamado "PanelOriginal" y un grid dentro con el nombre de "GridOriginal". Creará un panel nuevo con dos botones (Bot1 y Bot2) y colocará "GridOriginal" en la parte de abajo.
Si deseamos dividir el split en vertical en lugar de horizontal deberemos usar el código "2" en la adición del mismo (en el Panes.Add), pudiendo tomar cada uno de los siguientes valores:
lSplit.Panes.Add lSplit.Panes(0).Name, 0 ' Top - Creará el nuevo panel en la parte de arriba
lSplit.Panes.Add lSplit.Panes(0).Name, 1 ' Bottom - Creará el nuevo panel en la parte de abajo
lSplit.Panes.Add lSplit.Panes(0).Name, 2 ' Left - Creará el nuevo panel en la parte de la izquierda
lSplit.Panes.Add lSplit.Panes(0).Name, 3 ' Right - Creará el nuevo panel en la parte de la derecha
Código ejemplo
Sub Show()
gForm.Controls("GridOriginal").ActivarScripts = True
' Recuperamos el panel original que contiene el grid
Set lPnl = gForm.Controls("PanelOriginal")
' Creamos un splitter en el panel original
Set lSplit = gForm.Controls.Add("SSSplitter.SSSplitter.4","Pers_Splitter", lPnl)
With lSplit
.AutoSize = 1 ''''''''Fill container
.Borderstyle = 1 ''''''''None
.SplitterResizeStyle = 1 '''''''' proportional
.SplitterBarAppearance = 1 '''''''' Borderless
.visible = True
End With
' Creamos dos paneles nuevos
Set Panel1 = gForm.Controls.Add("AhoraOCX.CntPanel", "Pers_Panel1")
Panel1.Visible = True
Set Panel2 = gForm.Controls.Add("AhoraOCX.CntPanel", "Pers_Panel2")
Panel2.Visible = True
' Creamos dos botones en uno de los paneles nuevos
Set lBot1 = gForm.Controls.Add("AhoraOCX.cntBotonera", "Pers_Bot1",Panel1)
With lBot1
.ActivarScripts = True
.SeguridadObjeto = 0
.BotonesMantenimiento = 0
.Visible = True
.BotonAdd "","Pers_Bot1_A","",0,False,465
.HabilitaBotones
End With
Set lBot2 = gForm.Controls.Add("AhoraOCX.cntBotonera", "Pers_Bot2",Panel1)
With lBot2
.ActivarScripts = True
.SeguridadObjeto = 0
.BotonesMantenimiento = 0
.Visible = True
.BotonAdd "","Pers_Bot2_A","",0,False,466
.Top = lBot1.Top + lBot1.height
.HabilitaBotones
End With
' Asignamos el grid original en el segundo panel que hemos creado
Set gForm.Controls("GridOriginal").Container = Panel2
' Añadimos un panel nuevo
lSplit.Panes.Add lSplit.Panes(0).Name, 0
' Por último asignamos los paneles a las diferentes ventanas del splitter
lSplit.Panes(0).Control = Panel1
lSplit.Panes(1).Control = Panel2
End Sub