bestlong 怕失憶論壇

 

 

搜索
bestlong 怕失憶論壇 論壇 Delphi 使StringGrid自動依內容調整欄位寬度
查看: 8119|回復: 1
go

使StringGrid自動依內容調整欄位寬度 [複製鏈接]

Rank: 9Rank: 9Rank: 9

1#
發表於 2008-10-24 14:30 |只看該作者 |倒序瀏覽 |打印
  1. procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);
  2. var
  3.   MaxWidth,MaxHeight: integer;
  4. begin
  5.   //自動調整寬度
  6.   MaxWidth := StringGrid1.Canvas.TextWidth(StringGrid1.Cells[ACol, ARow]);
  7.   if MaxWidth > StringGrid1.ColWidths[ACol] then
  8.     StringGrid1.ColWidths[ACol] := MaxWidth + 5;
  9.   //自動調整高度
  10.   MaxHeight := StringGrid1.Canvas.TextHeight(StringGrid1.Cells[ACol, ARow]);
  11.   if MaxHeight > StringGrid1.RowHeights[ARow] then
  12.     StringGrid1.RowHeights[ARow] := MaxHeight + 4;
  13. end;
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

2#
發表於 2008-10-24 14:31 |只看該作者
  1. procedure AutoFitable(AGrids: TStringGrid);
  2. //傳入 TStringGrid 元件即可, 2004/10/28,CoolSlob
  3. var
  4.   I, J: Integer;
  5.   MaxLenRow: Integer;
  6.   CurRowLen: Integer;
  7. begin
  8.   inherited;
  9.   for J := 0 to AGrids.ColCount - 1 do
  10.   begin
  11.     MaxLenRow := 0;
  12.     for I := 1 to AGrids.RowCount - 1 do
  13.     begin
  14.       CurRowLen := AGrids.Canvas.TextWidth(Trim(AGrids.Cells[J, I]));
  15.       //自適應寬度時,當值的最大寬度小於標題寬時,以標題寬為準。
  16.       if AGrids.Canvas.TextWidth(Trim(AGrids.Cells[J, 0])) > CurRowLen then
  17.         CurRowLen := AGrids.Canvas.TextWidth(Trim(AGrids.Cells[J, 0]));
  18.       if CurRowLen > MaxLenRow then
  19.       begin
  20.         MaxLenRow := CurRowLen + 5;
  21.         AGrids.ColWidths[J] := MaxLenRow;
  22.       end;
  23.     end;
  24.   end;
  25. end;
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw
‹ 上一主題|下一主題

Archiver|怕失憶論壇

GMT+8, 2024-4-30 19:12 , Processed in 0.009915 second(s), 10 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.