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

請問如何實現資料讀取時使用帶有進度條的窗體

缺席
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-24 23:50:17 IP:61.145.xxx.xxx 未訂閱
各位先進的大大您們好! 請問如何實現資料讀取時使用帶有進度條的窗體?    當需要進入Form2時,Form2需要載入資料表的所有資料,在資料讀取完成之前自動跳出帶有Gauge1的Form1提示用戶『載入資料中...』當Form2資料讀取完成後Form1自動關閉。    問:如何可以實現?能提供范例嗎?    謝謝!    寫程序——新問題會接踵而來!
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-25 00:36:06 IP:203.204.xxx.xxx 未訂閱
您好:
基本上,我個人認為秀一個處理中的訊息給User看就好了,您要額外處理那樣的訊息,我覺得只是損耗Server的效能而已.
如果硬要做的話,如下:
1.先取得筆數,假設為1000筆,因此1%為10筆,每次抓10筆
2.Select * From Table Where 鍵值 Between 1 and 10
  可以參考這篇
  http://delphi.ktop.com.tw/topic.php?topic_id=63397
3.Progress應該會用吧!?拉一個放在您的From2上.
  Max設為筆數,每次Position加10就可以了    
發表人 - supman 於 2005/04/25 00:38:25
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-25 13:05:03 IP:210.69.xxx.xxx 未訂閱
沒有多少意義 先取得筆數,假設為1000筆,因此1%為10筆,每次抓10筆 這樣原本一次抓取完成, 變成 100 次抓取, 為了顯示進度浪費執行時間 而且如果您不確定要抓幾筆, 也難用此方式進行 ************************ 如果您滿意答案,請結案 ************************
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-25 13:40:02 IP:61.218.xxx.xxx 未訂閱
to BIG-ROM:  如果你是在進入Form2時,因為會有大量資料載入,為了不要讓使用者感覺程式當機的話,那麼可以顯示個資料讀取中,請稍等之類的訊息.但不建議顯示讀取資料的進度.因為你下一道sql指令,server就是回應給你這個sql指令查詢到的dataset,原本就沒有所謂進度的設定.如果你更是要去顯示進度,告訴user現在讀取多少%了,那麼就是自己找麻煩.儘量跟user溝通  至於顯示資料讀取中,請稍待的訊息,就看你發揮了.或者可以參考這裡(可能不是很容易懂,裡面有實例)
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-25 14:30:14 IP:61.145.xxx.xxx 未訂閱
您好!關於您的范例需要dgs32.dll但我計算機沒有這個文件        
引言: to BIG-ROM: 如果你是在進入Form2時,因為會有大量資料載入,為了不要讓使用者感覺程式當機的話,那麼可以顯示個資料讀取中,請稍等之類的訊息.但不建議顯示讀取資料的進度.因為你下一道sql指令,server就是回應給你這個sql指令查詢到的dataset,原本就沒有所謂進度的設定.如果你更是要去顯示進度,告訴user現在讀取多少%了,那麼就是自己找麻煩.儘量跟user溝通 至於顯示資料讀取中,請稍待的訊息,就看你發揮了.或者可以參考這裡(可能不是很容易懂,裡面有實例) >< face="Verdana, Arial, Helvetica"> 寫程序——新問題會接踵而來!
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-25 17:47:26 IP:61.218.xxx.xxx 未訂閱
1.範例是以DELPHI6寫的,用的元件都是DELPHI預設的元件. 2.我在我的電腦裡也是一樣找不到這個dgs32.dll,會不會你的環境有問題?
引言: 您好!關於您的范例需要dgs32.dll但我計算機沒有這個文件
引言: to BIG-ROM: 如果你是在進入Form2時,因為會有大量資料載入,為了不要讓使用者感覺程式當機的話,那麼可以顯示個資料讀取中,請稍等之類的訊息.但不建議顯示讀取資料的進度.因為你下一道sql指令,server就是回應給你這個sql指令查詢到的dataset,原本就沒有所謂進度的設定.如果你更是要去顯示進度,告訴user現在讀取多少%了,那麼就是自己找麻煩.儘量跟user溝通 至於顯示資料讀取中,請稍待的訊息,就看你發揮了.或者可以參考這裡(可能不是很容易懂,裡面有實例) >< face="Verdana, Arial, Helvetica"> 寫程序——新問題會接踵而來!
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-04 12:48:41 IP:219.130.xxx.xxx 未訂閱
問題為能得到解決,請幫忙想個辦法。    寫程序——新問題會接踵而來!
Edward Chen
一般會員


發表:28
回覆:21
積分:9
註冊:2004-07-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-06 23:12:15 IP:61.30.xxx.xxx 未訂閱
我的做法是 1.在Form這個Unit中使用另一個TThread的Class 2.把原來處理資料的所有程式碼搬到這個Class的Execute段落裡 3.Form上的Progress Bar傳入TThread中 4.啟動Class 可以獲得很不錯的多工效果 感謝這個網站
------
Signed by Edward Chen
系統時間:2024-06-28 1:40:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!