Ancho de columnas segun contenido
Buenas,
tengo que ajustar el ancho de algunas columnas de un stringgrid y quiero tomar el maximo de toda la grilla de esa columna pero si pregunto por el contenido me da un numero mucho menor. Mi codigo es: Código:
if (Grilla.ColWidths[j] < length(Grilla.Cells[j,i])) then Yanina Genia |
Usando la función Lenght obtienes el ancho en caracteres, mientras que el width de la columna debes dárselo en pixels.
Lo que necesitras es saber el ancho en pixels del contenido de la celda. Para ello puedes utilizar TCanvas.TextWidth. |
Ahhh
Ahi esta, que pelotuda que soy!!!
El codigo es Código:
if (Grilla.ColWidths[j] < Grilla.Canvas.TextWidth(Grilla.Cells[j,i])) then |
Supongo que éste código lo tienes en un bucle que recorre todas las filas; Como consejo te diría que dentro del bucle te apuntes el nuevo ancho en una variables, pero que no lo cambies hasta el final (una vez fuera del bucle), ya que hacerlo dentro (Grilla.ColWidths := ...) te va a acarrear muchos "eventos Paint" durante todo el cálculo, cosa que si lo haces al final evitarás.
|
La franja horaria es GMT +2. Ahora son las 00:48:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi