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

请问delphi中如何模拟加速度的效果?

尚未結案
delphibbs
一般會員


發表:1
回覆:1
積分:0
註冊:2006-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-12-17 15:29:03 IP:60.212.xxx.xxx 未訂閱
例如有一个progressbar,如何让它加速启动然后减速停止?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-12-19 11:53:07 IP:61.67.xxx.xxx 未訂閱
我想主要的程式段就一個延遲函數, 每跑一格progress丟入不同的延遲秒數, 要快一點延遲短一點, 反之就長一點, 其他的部份好好想一下, 不是太難
procedure Dealy(msec: intger);
begin
repeat
msec:= msec-1;
Application.ProcessMessage;
until msec=0
end;
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-12-19 13:18:30 IP:210.65.xxx.xxx 未訂閱
一時手癢
procedure TForm1.Button1Click(Sender: TObject);
var
I,SP : Integer;
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := 100;
ProgressBar1.Position := 0;
for I := ProgressBar1.Min to ProgressBar1.Max do
begin
ProgressBar1.Position := I;
SP := Round(Sqr(I - (ProgressBar1.Min ProgressBar1.Max) / 2) / 20) 20;
// SP := Round(ABS(I - (ProgressBar1.Min ProgressBar1.Max) / 2)) 10;
Sleep(SP);
Application.ProcessMessages;
end;
end;


Fishman
------
Fishman
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-12-23 19:17:01 IP:61.67.xxx.xxx 未訂閱
補充一下, 不建議使用Sleep, 因為這會令系統控制權完全暫停, 如果你的程式中有同時其他執行緒在運作, 會造成視窗畫面有頓停的感覺
系統時間:2024-05-17 7:07:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!