https://foro.gambas-es.org/viewtopic.php?f=4&t=2388&p=13568#p13568
-----------------------------------
Shell
Sabado, 26 May 2012, 23:23

Re: Ajustar El Tamaño De Una Celda
-----------------------------------
Al final fue bien con el uso de un array para guardar los valores mas grandes de ancho de celda.

[code linenumbers=false syntax=gambas]
Private filas As Integer
Private tcelda[5] As Integer

Public Sub _new()

End

Public Sub Form_Open()
  Dim x As Integer  
    Me.Center
    Me.Caption = "Práctica con TableView"
    Tabla = titulos(Tabla)
    txtNombre.SetFocus
    filas = 0
    For x = 0 To 4
        tcelda[x] = -99
    Next
End


Public Function titulos(hTabla As TableView) As TableView
  
  With hTabla
    .Header = 3
    .Columns.Count = 5   
    .Columns[0].Title = "Nombre"    
    .Columns[1].Title = "Apellidos"
    .Columns[2].Title = "Dirección"
    .Columns[3].Title = "Ciudad"
    .Columns[4].Title = "C.P"
  End With
  Return hTabla
  
End

Public Sub btnSalir_Click()
  Me.Close
End

Public Sub btnInsertar_Click()
  Dim cajatexto As Object
  Dim cajatextotemp As TextBox
  Dim ttemp As Integer 'Declaro esta variable para evitar más de un llamamiento a la función
  Dim x As Integer
    
  If txtNombre.Text <> "" And txtApellidos.Text <> "" And txtDireccion.Text <> "" And txtCiudad.Text <> "" And txtCP.Text <> "" Then
    Tabla.Rows.Count = filas + 1
        
  For x = 0 To 4 
  
    Select Case x      
      Case 0
         cajatextotemp = txtNombre
      Case 1
         cajatextotemp = txtApellidos  
      Case 2
          cajatextotemp = txtDireccion
      Case 3
          cajatextotemp = txtCiudad
      Case 4
          cajatextotemp = txtCP          
    End Select
    
    Tabla[filas, x].Text = cajatextotemp.Text
    ttemp = tamcelda(cajatextotemp)
    If ttemp > tcelda[x] And Tabla.Columns[x].Width < ttemp Then
      Tabla.Columns[x].Width = ttemp  
      tcelda[x] = Tabla.Columns[x].Width
    Endif
    
  Next
  filas += 1
  
  For Each cajatexto In FMain.Controls
    If cajatexto Is TextBox Then
      cajatexto.Text = ""
    Endif
  Next
  txtNombre.SetFocus
  
  Else
      Message.Info("Te falta algun campo por rellenar")
  Endif 
   
End

Public Function tamcelda(cajatexto As TextBox) As Integer
  
  Return (cajatexto.Font.TextWidth(cajatexto.Text)) * 1.1
  
End
[/code]

Lo cierto es que estoy perdiendo una pasta en monólogos.
Si llego a saber que esto era lo mio me hago de oro en el club de la comedia.


Saludos


