SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Linspire en Miércoles 8 de Marzo de 2006, 05:36

Título: Ayuda Con Stringgrid
Publicado por: Linspire en Miércoles 8 de Marzo de 2006, 05:36
Hola, alguien podría decirme como ajustar la longitud de las celdas de un TStringGrid a la longitud del texto que haya en las celdas?. me desvelé tratando de hacerlo y no pude.

De antemano gracias por las respuestas.
Título: Re: Ayuda Con Stringgrid
Publicado por: juanma en Miércoles 8 de Marzo de 2006, 14:51
Te escribo sin probar el código...
Una vez asignados los string a las celdillas del stringgrid, ejecuta algo similar a:
Código: Text
  1.  
  2. (nC = columna a ajustar, si son todas, meter esto dentro de un bucle por columnas)
  3. int nW, nr =0, nMax = 0;
  4. while (nr < sg->RowCount) {
  5.  nW = sg->Canvas->TextWidth(sg->Cells[nC][nr]);
  6.  if (nW > nMax)
  7.     nMax = nW;
  8.   nr++; //por claridad, lo puedes quitar aqui y poner en [nr++] arriba.
  9.   }
  10.  
  11. sg->ColWidths[nC] = nMx;
  12. //...
  13.  
  14.  
Título: Re: Ayuda Con Stringgrid
Publicado por: Linspire en Miércoles 8 de Marzo de 2006, 15:59
Gracias, lo probaré y te respondo más tarde si me funcionó.
Título: Re: Ayuda Con Stringgrid
Publicado por: Linspire en Viernes 10 de Marzo de 2006, 00:49
Joder, pues no entendí nada de tu código y menos en donde se programa, podrías comentarlo?
Título: Re: Ayuda Con Stringgrid
Publicado por: TRod en Viernes 10 de Marzo de 2006, 05:23
Hola todos.
El método TextWidth que escribió juanma te esta indicando el número de pixeles de una cadena. Con esto ya tienes resuelto casi todo el problema.
Podrías implementarlo en el evento OnSetEditText(). Pero claro esta que en las otras filas puedes tener un texto más largo... y entonces de ahi partes para resolver como se va a actualizar el ancho de la columna de acuerdo a tus necesidades.
La clave es  :alien: TextWidth :alien: .
Suerte! :hola:
Título: Re: Ayuda Con Stringgrid
Publicado por: Linspire en Viernes 10 de Marzo de 2006, 05:58
Ah pues, perfecto, muchisimas gracias por tu ayuda. Así se entiende mucho mejor.
Gracias nuevamente.  :D  :comp:  :P