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

關於使用2個ScrollBox的Position問題

答題得分者是:ikk
shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-10 18:33:08 IP:220.136.xxx.xxx 訂閱
各位大大好,
請問一下,
在1個乾淨的Form上,
使用2個ScrollBox,
裡面各放置1個ListBox,
ListBox中分別有100筆檔名,

此時不管ScrollBox->VertScrollBar->Position此時數值為多少,
只要滑鼠第1次點選某個ListBox中的檔名時(選取檔名),
ScrollBox->VertScrollBar->Position一定為0,
不能保持ScrollBox->VertScrollBar->Position的數值....

可是當只有1個ScrollBox卻不會有此問題,
這是哪裡需要設定嗎?

謝謝各位大大

編輯記錄
shanesss 重新編輯於 2009-02-11 14:16:49, 註解 無‧
ikk
尊榮會員


發表:4
回覆:413
積分:768
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-12 09:33:49 IP:163.28.xxx.xxx 訂閱
可能是BCB的bug, 我試的結果跟你一樣....
------
FPGA驗證, FPGA開發平台, http://smims.com
shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-12 10:56:49 IP:220.136.xxx.xxx 訂閱
謝謝ikk大大抽空回覆,

但我後來發現,
只要Focus從ListBox中跑掉後(例如按了Button物件,或是按下Tab鍵),
當Focus再跑回ListBox,
ScrollBox->VertScrollBar->Position一定會為0,

這樣是不是有別種方法可以解決這種問題呢?



shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-16 11:23:39 IP:220.136.xxx.xxx 訂閱
 目前此問題解決了..

方法步驟有2點
1.將ListBox的focus關閉
2.利用Mouse的Y座標算出ListBox1->ItemIndex,

這樣就可以在失去focus下,保有ListBox選取功能
程式如下:

[code cpp]
//關閉Focus
void __fastcall TForm4::ListBox1Enter(TObject *Sender)
{
FileListBox1->SetFocus();
}
//算出itemindex
void __fastcall TForm6::ListBox1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
ListBox1->ItemIndex=Y/20;
}
[/code]

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