Ver la Versión Completa : StringGrid. Ancho de una columna
jocaro
09-09-2018, 17:02:05
Hola
Tengo un stringgrid con varias columnas, en una de las cuales cargo un texto bastante largo, pero que no puedo ver completo.
Si uso el scroll, éste se mueve desde el tope de la izquierda al de la derecha rápidamente y el scroll de la informacion es mínimo.
¿Hay un límite en el ancho de columna en este componente?. ¿Hay que configurar alguna propiedad en concreto?. He ajustado la propiedad colwidth a un número elevado, pero no surte efecto a la hora de visualizar.
¿Alguno de vosotros que me pueda orientar?
Gracias por vuestra atención y un saludo
ecfisa
10-09-2018, 00:32:52
Hola.
Entiendo que deseas desplazar horizontalmente parte de una columna, cuyo largo total, es mayor al del componente.
El TStringGrid realiza el scroll horizontal por columnas, de modo que si tu columna tiene un ancho mayor que el área de visualización, esta inevitablemente desaparecerá para dar paso a las siguientes al realizar un scroll horizontal .
Una opción, si necesitas mostrar todo el texto, es ser incrementar el alto de la fila y escribir el contenido en mas de un renglón, por ejemplo:
...
implementation
const
LONGTEXT = 'Hola' + #10 +'Tengo un stringgrid con varias columnas, ' +
'en una de las cuales cargo un texto bastante largo, ' +
'pero que no puedo ver completo. Si uso el scroll, ' +
'éste se mueve desde el tope de la izquierda al de la ' +
'derecha rápidamente y el scroll de la informacion es mínimo.' + #10 + '...';
procedure TForm1.FormCreate(Sender: TObject);
var
sg: TStringGrid;
i : Integer;
begin
sg := StringGrid1;
sg.DefaultRowHeight := 65;
sg.ColWidths[0] := 430;
for i := 0 to sg.RowCount - 1 do
begin
sg.Cells[0,i] := LONGTEXT;
sg.Cells[1,i] := 'Columna 1';
sg.Cells[2,i] := 'Columna 2';
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
sg : TStringGrid;
Texto : string;
begin
sg := TStringGrid(Sender);
sg.Canvas.FillRect(Rect);
Texto := sg.Cells[ACol,ARow] + ' ';
DrawText(sg.Canvas.Handle, PChar(Texto), Length(Texto), Rect, DT_WORDBREAK);
end;
...
Resultado:
https://s15.postimg.cc/d72rg4wwr/jocaro.png
Saludos :)
jocaro
11-09-2018, 13:07:12
Hola y gracias por tu ayuda
Probaré la presentación en varias líneas que propones
Un saludo
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.