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

CheckListBox的捲軸

尚未結案
may
一般會員


發表:32
回覆:26
積分:11
註冊:2003-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-08 14:08:26 IP:210.202.xxx.xxx 未訂閱
請問如何讓CheckListBox出現左右及上下的捲軸,謝謝!!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-08 15:14:38 IP:63.84.xxx.xxx 未訂閱
您好﹗    据小弟所知﹐CheckListBox元件并沒有提供有關捲軸的直接屬性設定﹒    當Items中的內容高度大于目前CheckListBox的高度時﹐其上下捲軸就會自動出現﹐左右捲軸是和Columns屬性相關聯﹐當Columns屬性值不為0時(預設值為0)﹐當Items中的內容寬度大于CheckListBox時﹐其左右捲軸就會自動出現﹒ 上下捲軸与左右捲軸似乎不能同時出現﹗    參考看看﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
may
一般會員


發表:32
回覆:26
積分:11
註冊:2003-02-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-08 16:19:23 IP:210.202.xxx.xxx 未訂閱
對不起,我不太懂Column這句話的意思,我的程式是這樣寫的。 CheckListBox1.Items.Clear ; with Table1 do begin Active :=false; Active :=true; end; while not Table1.Eof do begin S1:=trim(Table1.fields[0].value); S2:=trim(Table1.fields[2].value); S:=S S1 ' , ' S2; CheckListBox1.Items.add (S); s:= ''; Table1.Next ; end; 其中S所組合的字串長度會超過CheckListBox1的寬度,此時希望能出現左右捲軸。
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-08 16:50:20 IP:63.84.xxx.xxx 未訂閱
您好﹗    CheckListBox1.Items.Clear ; with Table1 do begin Active :=false; Active :=true; end; while not Table1.Eof do begin S1:=trim(Table1.fields[0].value); S2:=trim(Table1.fields[2].value); S:=S + S1 + ' , ' +S2; CheckListBox1.Items.add (S); CheckListBox1.Columns := 1; s:= ''; Table1.Next ; end; Try it please! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-08 17:00:50 IP:61.155.xxx.xxx 未訂閱
may 兄: CheckListBox的上下捲軸与左右捲軸不可能同時出現的﹗ 当 CheckListBox1.Columns := 值; 值=0,出现上下捲軸 值〈〉0 ,出现左右捲軸
may
一般會員


發表:32
回覆:26
積分:11
註冊:2003-02-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-09 10:25:54 IP:210.202.xxx.xxx 未訂閱
我把Columns的屬性設為1可是如果CheckListBox1本身的高度大於資料的 筆數時,還是不會出現左右捲軸,這樣資料還是會被截斷(如圖),請問有方法解決嗎?
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-09 10:45:05 IP:63.84.xxx.xxx 未訂閱
您好﹗    小弟有測試過﹐應該可以啊﹒    當Columns的屬性不等于0時﹐當Items中內容的寬度大于CheckListBox的寬度時﹐左右的捲軸就會自動出現﹒ 如果Columns的屬性等于0時﹐當Items中內容的高度大于CheckListBox的高度時﹐上下的捲軸就會自動出現﹒ 但左右的捲軸和上下的捲軸不會同時出現﹒ 您可以試一下﹐加入一個新的CheckListBox元件﹐再在Items中輸入內容(盡量多輸入一些﹐以作測試)﹐而后將其的Columns屬性值分別設為0和1﹐您就會發現其不同之處了﹒就您的問題﹐應該只需要將Columns屬性值設為1即可﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-09 10:48:58 IP:202.39.xxx.xxx 未訂閱
兩種方式:
var
  iScrollBarWidth: integer;
begin
  CheckListBox1.Items.Add('測試測試測試測試測試測試測試測試測試測試');
  iScrollBarWidth := CheckListBox1.Canvas.TextWidth('測試測試測試測試測試測試測試測試測試測試');
  
  // 注意, iScrollBarWidth 的值要比 CheckListBox1.Width 的值來得大
  // if 內的 20 是大約計算前面可以打勾那個方格的寬度
  if iScrollBarWidth   20 > CheckListBox1.Width then begin
    SendMessage(CheckListBox1.Handle, LB_SETHORIZONTALEXTENT, iScrollBarWidth 20, 0);
    // 或
    CheckListBox1.Perform(LB_SETHORIZONTALEXTENT, iScrollBarWidth 20, 0);
  end;
end;
不過, 要在 Columns 值為 0 時才有效 --- 歡迎光臨 ><>@ 發表人 -
系統時間:2024-05-18 16:14:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!