Comunidad Gambas-es
[SOLUCIONADO] Como agregar un control durante la ejecución y manejar sus eventos??? - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Controles/Librerías/Componentes (https://gambas-es.org/forum-7.html)
+--- Tema: [SOLUCIONADO] Como agregar un control durante la ejecución y manejar sus eventos??? (/thread-966.html)



Como agregar un control durante la ejecución y manejar sus eventos??? - tercoide - 19-07-2022

Necesito ayuda en algo que seguramente para algunos sera una sonzera, pero nunca lo hice: en algun momento de la ejecucion del progrma voy a abrir un archivo, entoces tengo que agregar una TabStrip al lado de Drawing1, y meter otra TabStrip (o TabPanel) tal como esta ahi, con un control GLArea metido. Se puede hacer? Supongamos que el user intentara abrir muchos archivos....
Siendo la otra posibilidad de crearlos en el IDE , digamos unos 10 tabs y limitar la apertura de archivos a ese numero; y ocultando los tabs que no se usan. 

[Imagen: hh4UAqk.png]


RE: Como agregar un control durante la ejecución y manejar sus eventos??? (RESUELTO) - tercoide - 19-07-2022

pongo la solucion para lo que no saben, pero se me hace que todos lo sabian menos yo... Big Grin


Código:
' Crea una nueva Tab para alojar un nuevo grafico
Public Function NewTabForDrawing(sName As String) As Boolean

    Dim idx As Integer

    Me.tabDrawings.Count += 1 'Agrego un nuevo Tab
    idx = Me.tabDrawings.Count - 1 'Obtengo el nuevo indice
    Me.tabDrawings[idx].Text = sName
    Me.tabDrawings[idx].Expand = True
    Me.tabDrawings.Index = idx
    Dim tabFileNew As New TabPanel(Me.tabDrawings[idx]) ' Agrego un tab al tab
    tabFileNew.Count = 2 'Dos pestañas
    tabFileNew.Expand = True ' Preparo para que se acomode
    tabFileNew.Arrangement = Arrange.Fill
    tabFileNew.Orientation = Align.Bottom
    tabFileNew[0].Text = "Model"
    tabFileNew[1].Text = "Paper"
    Dim glaFile As New GLArea(tabFileNew[0]) 'Le inserto una GLArea
    glaFile.Expand = True
    glaFile.Tracking = True
    Object.Attach(glaFile, Me, "GLArea1") 'Observo los eventos con ese nombre, ej GLArea1_Draw
    Me.Refresh
    Return True
End



RE: Como agregar un control durante la ejecución y manejar sus eventos??? (RESUELTO) - Shordi - 20-07-2022

Me pillaste lejos de un teclado, compañero... Big Grin


RE: Como agregar un control durante la ejecución y manejar sus eventos??? (RESUELTO) - Shell - 20-07-2022

Otro mensaje que tengo que dejar para leer más adelante.. Sad
Cachis!.


RE: Como agregar un control durante la ejecución y manejar sus eventos??? - tincho - 26-07-2022

(19-07-2022, 00:52)tercoide escribió: voy a abrir un archivo, entoces tengo que agregar una TabStrip al lado de Drawing1, y meter otra TabStrip (o TabPanel) tal como esta ahi, con un control GLArea metido. Se puede hacer? Supongamos que el user intentara abrir muchos archivos....

Hola terco, hay alternativas a usar controles creados en tiempo de ejecución y tabstrips, consiste en agregar botones dentro de un panel donde cada botón tiene el tag = ruta del archivo y luego con los eventos de estos botones dibujas en el DA tomando los datos desde la colección de datos de el plano actual, lo que permite que uses siempre el mismo DA.