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

請問要如何控制TPageScroller 以達到 BCB 元件盤上的捲動效果?

答題得分者是:liangnet
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-30 16:44:09 IP:218.19.xxx.xxx 未訂閱
各位先進們大家好,我使用的開發工具是 BCB4,我在使用 TPageScroller 這個元件時碰到一個問題如下:    我想要做出類似 BCB IDE 環境裡的元件盤 (Component Palette) 效果,若是元件盤上的元件按鈕項目過多而超過顯示範圍時,元件盤會在左方或是右方動態顯示出一個箭頭按鈕 (如下圖兩側以明亮橢圓形標示的區域),每次點選箭頭按鈕一次時,會捲動一個按鈕的位移量。     我想使用 TPageScroller 及 TToolBar 元件來達到上述的動作,但是我現在做出來的結果是每點選一次調整位移量的箭頭按鈕時,TPageScroller 元件內的按鈕卻是一次捲動多個按鈕的位移量,我應該要如何設定才能做到像 BCB 元件盤一般,每點選一次就僅捲動一個按鈕的位移量
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-02 10:54:15 IP:218.170.xxx.xxx 未訂閱
你好: 這是我在BCB6.0做的方法。給你參考看看 在TPageScroller有一個事件OnScroll,輸入下面程式
void __fastcall TForm1::PageScroller1Scroll(TObject *Sender,
      TShiftState Shift, int X, int Y,
      TPageScrollerOrientation Orientation, int &Delta)
{
        if (Delta > 0)
              Delta = 1; //向左移動
        else
              Delta = -1; //向右移動
}    
以上程式會以平滑方式捲動,如何要一次捲動一個按鈕,請將1改成按鈕的寬度或高度。 修正:好像不管是往左移、往右移,Shift似乎都一直是ssLeft? 因此我改用判斷Delta是為正數或負數? 發表人 - liangnet 於 2004/12/02 11:04:33
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-02 18:09:30 IP:218.19.xxx.xxx 未訂閱
liangnet 您好: 我依據您提供的參考資料,試過的結果雖然仍有問題,但我猜想是其它的設定所影響的 (這個元件怪怪的,Help 裡的相關參考資訊又不多,可能需要多方測試才能獲得正確結果,例如其內元件的 Align 屬性似乎不能設為 AlClient...等等),您提供的方式應該沒問題,多謝您的協助。
系統時間:2024-04-29 12:18:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!