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/forumdisplay.php?fid=3)
+--- Foro: Controles/Librerías/Componentes (https://gambas-es.org/forumdisplay.php?fid=7)
+--- Tema: [SOLUCIONADO] Como agregar un control durante la ejecución y manejar sus eventos??? (/showthread.php?tid=966)



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


GAMBAS
  1. ' Crea una nueva Tab para alojar un nuevo grafico
  2. Public Function NewTabForDrawing(sName As String) As Boolean
  3.  
  4.     Dim idx As Integer
  5.  
  6.     Me.tabDrawings.Count += 1 'Agrego un nuevo Tab
  7.     idx = Me.tabDrawings.Count - 1 'Obtengo el nuevo indice
  8.     Me.tabDrawings[idx].Text = sName
  9.     Me.tabDrawings[idx].Expand = True
  10.     Me.tabDrawings.Index = idx
  11.     Dim tabFileNew As New TabPanel(Me.tabDrawings[idx]) ' Agrego un tab al tab
  12.     tabFileNew.Count = 2 'Dos pestañas
  13.     tabFileNew.Expand = True ' Preparo para que se acomode
  14.     tabFileNew.Arrangement = Arrange.Fill
  15.     tabFileNew.Orientation = Align.Bottom
  16.     tabFileNew[0].Text = "Model"
  17.     tabFileNew[1].Text = "Paper"
  18.     Dim glaFile As New GLArea(tabFileNew[0]) 'Le inserto una GLArea
  19.     glaFile.Expand = True
  20.     glaFile.Tracking = True
  21.     Object.Attach(glaFile, Me, "GLArea1") 'Observo los eventos con ese nombre, ej GLArea1_Draw
  22.     Me.Refresh
  23.     Return True





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.