FMX StringGrid根据内容自适应列宽
作者:互联网
FMX StringGrid根据内容自适应列宽
1 // maxrow,默认只排序前面100行以内的数据 2 // maxwidth,默认单字段显示的最大宽度 3 function GetColMaxDataLength(ASGrid: TStringGrid;maxrow:Integer=100;maxwidth:Integer=400): TObject; 4 var 5 MaxColLength, //列数据的最大长度 6 CellLength: Single; //单元格长度 7 ACol,ARow: Integer; 8 L_maxrow:integer; 9 begin 10 with ASGrid do 11 begin 12 L_maxrow:=Min(maxrow,ColumnCount); 13 for ACol := 0 to ColumnCount - 1 do 14 begin 15 MaxColLength:=Canvas.TextWidth(Columns[ACol].Header);//取列头宽度 16 for ARow := 0 to L_maxrow - 1 do //为了效率,最大行数默认为100 17 begin 18 CellLength := Canvas.TextWidth(Cells[ACol,ARow]);//取单元格宽度 19 if CellLength > MaxColLength then 20 MaxColLength := CellLength; 21 end; 22 Columns[ACol].Width := min(maxwidth,MaxColLength + 20); //加上一个值调整列宽 23 end; 24 end; 25 end;
应用很简单,一句搞定:
GetColMaxDataLength(StringGrid1);
标签:begin,end,ACol,FMX,MaxColLength,StringGrid,maxrow,列宽,CellLength 来源: https://www.cnblogs.com/dqi1999/p/13913366.html