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

Autor: Pablo Céspedes