MSFlexgrid y columnas

Me gustaría saber como ajustar el tamaño de las columnas del grid al tamaño máximo del texto que halla en ellas.

1 respuesta

Respuesta
1
El problema que tienes es que la función len() te da el numero de caracteres y la propiedad colwidth espera twips.
Para pasar caracteres a twips depende del fuente; en la pagina que te comente usan lo siguiente
intCharWidth = myForm.TextWidth("X") ' calcular aprox. el ancho de una letra
el problema que te lo calcula segun el fuente del formulario, pero podria valer
si te fijas en el ejemplo de la pagina veras que en vez de ajustar la columna registro a registro, lo que hace es guardar por cada columna los caracteres maximos para luego cambiar el ancho solo una vez
Gracias, probaré con esto y seguiré buscando más opciones. Gracias otra vez.
Mira, yo tenía el siguiente código cuando se cargaba el formulario que tiene el grid:
For fila = 1 To registros
For colum = 1 To 10
If grid1.TextMatrix(fila, colum) <> "" Then
ancho = Len(grid1.TextMatrix(fila, colum))
grid1.ColWidth(colum) = ancho
End If
Next colum
Next fila
¿Lo qué pasa es que la longitud de caracteres y el ancho de las columnas van en un formato distinto no? Además, cuando llegaba a la 4ª columna me decía que el subíndice estaba fuera del intervalo. Mira a ver si me puedes ayudar ya que lo que he leído por internet (y busco mucho solo pregunto aquí cuando no encuentro nada) es lo mismo casi que lo que te pongo aquí. Gracias.
He estado buceando por internet (te lo recomiendo), y lo más que he encontrado es recorrer el grid (msflexgrid, datagrid...) averiguando cual es la columna que tiene más caracteres entonces pones el ancho de esa columna
Mira en esta página
http://guille.costasol.net/vbonline/9706/q_a_es.htm

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas