線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2389
推到 Plurk!
推到 Facebook!

如何让dbgrid中的各列自动调整宽度?

尚未結案
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-09 23:27:25 IP:218.85.xxx.xxx 未訂閱
如何让dbgrid中的各列自动调整为足够显示内容的最小宽度?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-10 09:12:39 IP:210.61.xxx.xxx 未訂閱
ffprince您好    DBGrid的各Column的Width其實是由DataSet的欄位DisplayWidth帶出來的, 而這個DisplayWidth值是由資料庫的Schema定義欄位大小時給的, 例如整數是4. 如果資料表的欄位數很多, 一般都會超過DBGrid可視範圍.    所以說, DBGrid的Column寬度由資料表定義決定. 但是若您想用程式碼調整 下面片段程式碼您可以參考看看
var
  TotalGridDisplayWidth:Integer;    procedure TForm1.FormCreate(Sender: TObject);
var
  i:Integer;
  x:double;
begin
  TotalGridDisplayWidth:=0;
  for i:=0 to DBGrid1.Columns.Count-1 do
  begin
    TotalGridDisplayWidth:=TotalGridDisplayWidth DBGrid1.Columns.Items[i].Width;
  end;
  for i:=0 to DBGrid1.Columns.Count-1 do
  begin
    x:=DBGrid1.Columns[i].Width / TotalGridDisplayWidth;
    DBGrid1.Columns[i].Width:=Round((DBGrid1.Width-50)*x);
  end;
end;
byby1231
一般會員


發表:0
回覆:3
積分:0
註冊:2009-12-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-04-16 10:16:52 IP:59.125.xxx.xxx 訂閱
不好意思 把這麼老的文章挖出來
我想樓主想要問的意思應該是 單一欄位 最佳的最小寬度
不是所有columns加總後的寬度

意思大概就是在EXCEL標題欄與標題欄之間 按兩下
會自動拉出最佳的距離的意思吧!!
byby1231
一般會員


發表:0
回覆:3
積分:0
註冊:2009-12-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-04-16 11:17:19 IP:59.125.xxx.xxx 訂閱
就在剛剛 自己解決的這個問題

使用 : Canvas.TextWidth(Tstring):integer

就可以知道 字串 TString所需要使用的 Width 也就是(pixel:畫素)

以上!
系統時間:2024-11-23 3:19:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!