關於TListView如何動態調整最適寬度 |
尚未結案
|
admin.chang
一般會員 發表:6 回覆:6 積分:2 註冊:2003-01-04 發送簡訊給我 |
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
admin.chang 你好
以下這段程式,參考看看,如果資料筆數多的話要考慮一下速度的問題。 Var ACanvas : TCanvas ; i, j : Integer ; Li : TListItem; w :array Of Integer ; begin ACanvas:=ListView1.Canvas; ACanvas.Font := ListView1.Font; setLength(w,ListView1.Columns.Count); For i:=low(w) To high(w) Do Begin w[i] := 0 ; End; // 逐筆比較寬度(取大值) For i:=0 To ListView1.Items.Count-1 Do Begin Li := ListView1.Items[i]; w[0] := Max(W[0],ACanvas.TextWidth(Li.caption)); For j:=0 To Li.SubItems.Count-1 Do Begin w[j 1] := Max(w[j 1],ACanvas.TextWidth(Li.SubItems[j])); End; End; For i:= 0 To ListView1.Columns.Count-1 Do Begin ListView1.Columns[i].Width := w[i] 12; // 12是保留空間(左右間距及邊距) // 另外第一個Column還要考慮加上圖示及Checked圖示的寬度 End; end;_______________________________________ 深藍的魚,祝您好運..........連連 |
admin.chang
一般會員 發表:6 回覆:6 積分:2 註冊:2003-01-04 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
admin.chang 你好
在多檢查表頭的Caption即可(如紅色部份) Var ACanvas : TCanvas ; i, j : Integer ; Li : TListItem; w :array Of Integer ; begin ACanvas:=ListView1.Canvas; ACanvas.Font := ListView1.Font; setLength(w,ListView1.Columns.Count); For i:=low(w) To high(w) Do Begin w[i] := 0 ; End; For i:=0 To ListView1.Columns.Count-1 Do Begin w[i] := Max(w[i],ACanvas.TextWidth(ListView1.Columns[i].Caption)); End; // 逐筆比較寬度(取大值) For i:=0 To ListView1.Items.Count-1 Do Begin Li := ListView1.Items[i]; w[0] := Max(W[0],ACanvas.TextWidth(Li.caption)); For j:=0 To Li.SubItems.Count-1 Do Begin w[j 1] := Max(w[j 1],ACanvas.TextWidth(Li.SubItems[j])); End; End; For i:= 0 To ListView1.Columns.Count-1 Do Begin ListView1.Columns[i].Width := w[i] 12; // 12是保留空間(左右間距及邊距) // 另外第一個Column還要考慮加上圖示及Checked圖示的寬度 End; end;_______________________________________ 深藍的魚,祝您好運..........連連 |
admin.chang
一般會員 發表:6 回覆:6 積分:2 註冊:2003-01-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |