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

關於TListView的問題

尚未結案
小貓
一般會員


發表:14
回覆:23
積分:12
註冊:2002-07-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-19 11:49:17 IP:203.70.xxx.xxx 未訂閱
各位大大你好: 請問要如何才能夠更改 TListItem 的高度呢?
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-19 12:11:33 IP:147.8.xxx.xxx 未訂閱
All items with same height? Maybe use a larger font? In the end, you may need to use a owner draw list view (i.e. OwnerDraw = True) and draw all the items...
小貓
一般會員


發表:14
回覆:23
積分:12
註冊:2002-07-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-19 13:58:18 IP:203.70.xxx.xxx 未訂閱
你好阿!! 我是希望字型的大小不變,但是"項目的欄位"增大了. 謝謝你!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-19 14:32:48 IP:147.8.xxx.xxx 未訂閱
"項目的欄位"??? Any drawing/picture?
小貓
一般會員


發表:14
回覆:23
積分:12
註冊:2002-07-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-19 16:13:45 IP:203.70.xxx.xxx 未訂閱
比如這樣阿,欄位寬寬的但是字型不變. 謝謝你.
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-19 16:55:50 IP:147.8.xxx.xxx 未訂閱
Don't know if it is want you want: 1) add a ImageList to the form and set its width/height (e.g. 32/32) 2) assign the ImageList to the ListView as StateImages or probably others...
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-19 21:47:01 IP:203.222.xxx.xxx 未訂閱
將 ListView 的字型設的比你要的還大許多,或是 Size 大 6 然後在 OnAdvancedCustomDrawItem 加入以下程式碼    
procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
var
  FBRect: TRect;
  i,j,FH,
  OldSize,MBack: Integer;    begin     if TListView(Item.ListView).ViewStyle = vsReport then
  begin       DefaultDraw := False;
   //** 計算 Item 啟始位置
   FBRect := Item.DisplayRect(drBounds);
   OldSize := Item.ListView.Canvas.Font.Size;
   
   Item.ListView.Canvas.Font.Size := Item.ListView.Canvas.Font.Size - 6;//** 用這裡調整項目欄位與字形間距的比例,減去 6 以後就是你要的大小
   FH := FBRect.Bottom - FBRect.Top   Item.ListView.Canvas.Font.Height;
   if FH < 0 then FH := 0;
   FBRect.Top := FBRect.Top   (FH div 2);
   //** 輸出字形
   Item.ListView.Canvas.TextOut(FBRect.Left   3, FBRect.Top,Item.Caption);
   for i := 1 to Item.SubItems.Count do
    begin         //** 計算 SubItem 啟始位置
     MBack := 0;
     if (TListView(Item.ListView).Columns.Count - 1) > i then
      for j := (i   1) to (TListView(Item.ListView).Columns.Count - 1) do
       MBack := MBack   ListView_GetColumnWidth(Item.ListView.Handle,j);
     FBRect := Item.DisplayRect(drBounds);
     FBRect.Left := FBRect.Right - ListView_GetColumnWidth(Item.ListView.Handle,i) - MBack;
     FBRect.Right := FBRect.Right - MBack;
     FH := FBRect.Bottom - FBRect.Top   Item.ListView.Canvas.Font.Height;
     if FH < 0 then FH := 0;
     FBRect.Top := FBRect.Top   (FH div 2);
     //** 輸出字形
     Item.ListView.Canvas.TextOut(FBRect.Left   3, FBRect.Top,Item.SubItems[i - 1]);        end;       Item.ListView.Canvas.Font.Size := OldSize;      end;    end;
發表人 - syntax 於 2003/09/19 21:50:16
系統時間:2024-05-18 14:09:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!