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

如何設計ProgressBar

尚未結案
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-25 17:15:45 IP:61.220.xxx.xxx 未訂閱
請教各位前輩 小弟想要設計ProgressBar,請教各位哪種設計模式較好用??可以舉例ㄇ?? 小弟自己想的有狀況有 1.當要多筆或單筆執行Stored Procedure 時 2.要抓取資料時 怎樣計算Max和Position 值 請大家幫忙一下
------
ivankuo
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-25 22:41:45 IP:218.32.xxx.xxx 未訂閱
你可以參考這篇:    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29234    
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-28 13:52:13 IP:61.220.xxx.xxx 未訂閱
引言: 你可以參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29234
前輩:由此文章中若要用ProgressBar要取得Max值的時候,query必須已經抓取到資料,這樣ProgressBar顯示的狀態就會不準,小弟看到ADOQuery的下列Event 範例中,感覺好像可以用此Event來解決此問題,但是我是不出效果耶~~~也不知他是何時觸發的Event?? procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress, MaxProgress: Integer; var EventStatus: TEventStatus); begin Caption:='Percent complete: '+ IntToStr(Trunc(Progress / MaxProgress * 100)) + '%'; Application.ProcessMessages; end;
------
ivankuo
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-28 14:35:29 IP:218.163.xxx.xxx 未訂閱
ADOQuery1.ExecuteOptions := [eoAsyncFetch];    
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-28 15:48:39 IP:61.220.xxx.xxx 未訂閱
我測試結果,ADOQuery只有等到資料全部取得才會觸發此Event,一下就變成100%
------
ivankuo
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-30 14:55:29 IP:218.163.xxx.xxx 未訂閱
試試 :
procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet;
  Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
  ProgressBar1.Position := trunc(Progress/MaxProgress*ProgressBar1.Max);
  Application.ProcessMessages;
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.ExecuteOptions := [eoAsyncExecute,eoAsyncFetch];
  DataSetProvider1.DataSet := ADOQuery1;
  ClientDataSet1.ProviderName := 'DataSetProvider1';
  ClientDataSet1.Open;
  ProgressBar1.Position := ProgressBar1.Max;
end;    
系統時間:2024-05-14 4:41:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!