https://foro.gambas-es.org/viewtopic.php?f=1&t=5012
-----------------------------------
Ricardo Prieto
Viernes, 04 Diciembre 2015, 16:12

Insertar Objeto Dentro De Otro
-----------------------------------
Hola me podrian ayudarme necesito insetar un objeto tableview dentro de un tabstrip y que cada vez que cree una nueva pesatña inserte este mismo tableview. Desde ya muchas gracias..

Public Sub ClonarTabla()

  TabStripVentas.Count = TabStripVentas.Count + 1

  NvTablaVenta = New TableView(TablaVenta)

  NvTablaVenta = New TableView(TabStripVentas.Current)

  

End

Aqui les de dejo un fragmento de codigo. Me da un error en la clase vistual


-----------------------------------
shordi
Viernes, 04 Diciembre 2015, 16:47

Re: Insertar Objeto Dentro De Otro
-----------------------------------
[quote]

  NvTablaVenta = New TableView(TablaVenta)

[/quote]
No sé qué hace esta línea.


-----------------------------------
vuott
Viernes, 04 Diciembre 2015, 17:41

Re: Insertar Objeto Dentro De Otro
-----------------------------------
[i]Exemplum ad solvendum[/i]:

[code linenumbers=false syntax=gambas]Public Sub Form_Open()

 Dim j As Byte

  TabStripVentas.Count = 3

  For j = 0 To 2
    TabStripVentas[j].Text = CStr(j)
  Next

End


Public Sub ClonarTabla()

  Dim NvTablaVenta As TableView
  
    TabStripVentas.Count = TabStripVentas.Count + 1

    TabStripVentas.Index = TabStripVentas.Count - 1

    TabStripVentas[TabStripVentas.Count - 1].Text = CStr(TabStripVentas.Count - 1)

   With NvTablaVenta = New TableView(TabStripVentas)
     .X = 40
     .Y = 100
     .W = 200
     .H = 200
     .Rows.Count = 3
     .Columns.Count = 3
   End With
  
End


Public Sub Button1_Click()

  ClonarTabla()

End[/code]


-----------------------------------
Ricardo Prieto
Viernes, 04 Diciembre 2015, 21:05

Re: Insertar Objeto Dentro De Otro
-----------------------------------
Muchas gracias por tu ayuda, me falta pasar los parametros H,W para que se inicie... :mryellow:


-----------------------------------
vuott
Viernes, 04 Diciembre 2015, 23:08

Re: Insertar Objeto Dentro De Otro
-----------------------------------
Lo que es importante en el tu caso, es:

[code linenumbers=false syntax=gambas]TabStripVentas.INDEX = .....[/code]


-----------------------------------
Ricardo Prieto
Domingo, 06 Diciembre 2015, 17:18

Re: Insertar Objeto Dentro De Otro
-----------------------------------
Les consulto como hago para acceder al objeto tableview creado..? Por que a medida que los voy creando no encuentro la forma de acceder


-----------------------------------
shordi
Domingo, 06 Diciembre 2015, 17:56

Re: Insertar Objeto Dentro De Otro
-----------------------------------
Sube el proyecto con lo que has hecho, o al menos el código que usas. Si no, imposible ayudarte.


-----------------------------------
vuott
Domingo, 06 Diciembre 2015, 18:08

Re: Insertar Objeto Dentro De Otro
-----------------------------------
[quote user="Ricardo Prieto" post="29075"]... acceder al objeto tableview creado..? Por que a medida que los voy creando no encuentro la forma de acceder[/quote]

Si tu por "acceder", te refieres a utilizar las recursos del objecto TableView creado:

[b]1[/b]) elimina la declaración local de la variable NvTablaVenta, y pone una variable [i]global[/i]:
[code linenumbers=false syntax=gambas]Private NvTablaVenta As TableView


Public Sub Form_Open()

etc..etc...[/code]

Asì tu pudes utilizar propiedades y metodos en las routine.


[b]2[/b]) para usar los eventos del objecto, tienes que asignar las [i]TableView[/i] creadas a un mismo "Grupo" de evbentos.
Asì, cambia esta linea:
With NvTablaVenta = New TableView(TabStripVentas)

como sigue:
[code linenumbers=false syntax=gambas]With NvTablaVenta = New TableView(TabStripVentas) As "NvTablaVenta"[/code]

Podemos usar por ejemplo:
[code linenumbers=false syntax=gambas]Public Sub NvTablaVenta_Click()

  NvTablaVenta[NvTablaVenta.Row, NvTablaVenta.Column].Text = CStr(NvTablaVenta.Row & "  " & NvTablaVenta.Column)
  
End[/code]



Es decir:
[code linenumbers=false syntax=gambas]Private NvTablaVenta As TableView


Public Sub Form_Open()

 Dim j As Byte

  TabStripVentas.Count = 3

  For j = 0 To 2
    TabStripVentas[j].Text = CStr(j)
  Next

End


Public Sub ClonarTabla()
  
    TabStripVentas.Count = TabStripVentas.Count + 1

    TabStripVentas.Index = TabStripVentas.Count - 1

    TabStripVentas[TabStripVentas.Count - 1].Text = CStr(TabStripVentas.Count - 1)

   With NvTablaVenta = New TableView(TabStripVentas) As "NvTablaVenta"
     .X = 40
     .Y = 100
     .W = 200
     .H = 200
     .Rows.Count = 3
     .Columns.Count = 3
     .Name = "NvTablaVenta " & CStr(TabStripVentas.Count - 1)
   End With
  
End


Public Sub Button1_Click()

  ClonarTabla()

End


Public Sub NvTablaVenta_Click()

  Print Last.Name

  NvTablaVenta[NvTablaVenta.Row, NvTablaVenta.Column].Text = CStr(NvTablaVenta.Row & "  " & NvTablaVenta.Column)
  
End[/code]


