全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1217
推到 Plurk!
推到 Facebook!

對 ScrollBox 上面的內容做放大縮小功能所面臨的問題

缺席
linly
一般會員


發表:42
回覆:37
積分:15
註冊:2007-10-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-13 14:41:28 IP:140.113.xxx.xxx 訂閱
您好:

我在 ScrollBox 上面放很多 TImage,然後當我按下放大或者縮小功能時,因為 TImage 的寬高會改變,因此需要重新擺放 TImage 在 ScrollBox 上的位置,例如放大的函式:


[code cpp]
void __fastcall TForm1::ZoomInClick(TObject *Sender)
{
double oldRange = ScrollBox1->VertScrollBar->Range;
double oldPos = ScrollBox1->VertScrollBar->Position;
ScrollBox1->VertScrollBar->Range = gap (gap height 50)*num1;
ScrollBox1->VertScrollBar->Position = 0;

int temp;
for (int i = 0; i < num1; i)
{
pImagePool[i]->Width = width 50;
pImagePool[i]->Height = height 50;
temp = ScrollBox1->Width - pImagePool[i]->Width - 20;
pImagePool[i]->Left = temp/2;
pImagePool[i]->Top = gap (gap pImagePool[i]->Height)*i;
}

ScrollBox1->VertScrollBar->Position = ceil((oldPos*ScrollBox1->VertScrollBar->Range)/oldRange);
}

[/code]

其中我用螢光筆畫起來的敘述非加不可,不然 TImage 的位置可就不聽話會亂跑 ( 實驗方式:把螢光筆那行註解掉,捲軸拉到中途,然後放大)

當然猜的出來原因是什麼,只是說我的解決方式會造成一個現象就是,捲軸上去又下來,這是因為我先歸零的緣故,所以在這邊想請問一下有什麼方式避免這個問題,附上程式碼供參考

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