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

另一個Thread的問題

答題得分者是:ha0009
Edward Chen
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-02 08:30:07 IP:202.39.xxx.xxx 未訂閱
Main Form上的一個Combox因為在Create時須大量填入下拉的選項 而資料又來自資料庫,致使Form一開始的時候就很慢,要等很久才會跳出來。 我的問題是: 1.這樣是不是要用另一個Thread來解決才可以不影響Form出現的速度? 2.經嚐試用另一個Thread來填滿這個Combox,其他的VCL正常,但是卻使得這個Combox無法正常顯示,不知道是不是Thread的用法不正確? 在Form Create事件中: ComboThread:=ComboThreadClass.Create; ComboThread.Execute; 在另一個Unit中: Type ComboThreadClass=Class(TThread) Private Public Procedure Execute; override; end; 其中 Execute這個方法即是填滿Main Form的程式所在 請不吝指正!! 感謝這個網站
------
Signed by Edward Chen
change.jian
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-02 10:55:09 IP:61.229.xxx.xxx 未訂閱
hi,Edward Chen: 不曉得這樣可不可以. 1.在Form放一個TTimer.設定觸發時間為1秒. 2.在Form.Create裡,把ComboBox.Enabled設為False.在Form Create最後啟動TTTimer1 3.在TTimer的觸發程式裡去讀取ComboBox的選項.記得一開始要先把TTimer disabled掉,免得又再執行一次.最後執行完成後,把ComboBox.Enabled設為True 您試試看
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-02 15:31:17 IP:220.134.xxx.xxx 未訂閱
你的程式沒有說明填值的部份程式,實在很難看出問題點 你是否有利用Synchronize來處理填值動作? 利用DEBUG檢視是否整個程式均正常完成? 建議先自己試試看看程式方面在執行上有無問題?如果查不出來或不知如何解決,建議將程式碼貼上或上傳 ========================= 讀萬卷書~不如來K.TOP走一遭 =========================
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-02 15:35:46 IP:219.80.xxx.xxx 未訂閱
你好:
  為了便於觀察,我把主角改為 TListBox,
如果範例可行,你再自行換成你的 TComboBox 吧      我想你的程式會變慢應該是使用了  >      下面的例子會有一個情況,就是當你的執行緒還在
執行時程式已經關閉,那就有可能產生  >    >  > >    < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
        
系統時間:2024-06-29 11:12:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!