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

請問一下怎麼讓程式畫面部會lock住阿

尚未結案
liang-shien
一般會員


發表:15
回覆:21
積分:7
註冊:2005-05-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-10 11:44:47 IP:220.228.xxx.xxx 未訂閱
未了避免我用程式去call另外一個function時,因為這個function會執行比較久,所以之前我的畫面就會被停住,連移動都不能移動.所以我用createThread去讓它執行,可是現在要怎麼知道這個thread執行完畢了呢.因為我要等它執行完後才跳到下一個畫面ㄝ...
liang-shien
一般會員


發表:15
回覆:21
積分:7
註冊:2005-05-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-10 12:13:45 IP:61.66.xxx.xxx 未訂閱
剛剛試了一下CreateThread,可是程式畫面還是會被定住ㄝ..要怎麼才不會被定駐阿...
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-10 13:11:26 IP:218.19.xxx.xxx 未訂閱
liang-shien 您好:    在您執行密集處理程序的地方 (例如迴圈內),加上如下的敘述:
Application->ProcessMessages();
就不會將主程式咬住了,以 Thread ProcessMessages 為關鍵字搜尋站上資料,可獲得更多的資料可供參考。
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-10 18:17:48 IP:221.169.xxx.xxx 未訂閱
liang-shien:
於Unit1.h中
private:        // User declarations
  MyThread *mythread;
  void __fastcall MYThreadEnd(TObject* Sender); 
於Unit1.cpp中
//----------------------------------------------------
void __fastcall TForm1::MYThreadEnd(TObject* Sender)
{
  // 執行你的判斷或程式
}
//----------------------------------------------------
// 執行Thread
mythread = new MyThread();
mythread->OnTerminate=MYThreadEnd; // 當Thread結束會呼叫MYThreadEnd()    於MyThread.cpp中
void __fastcall TWebThread::Execute(void)
{
  FreeOnTerminate = true;
  ...
  ...
  Terminate();
}
如此只要你Thread程式主程式就會知道!
請參考!    
Andy Chang
------
Andy Chang
liang-shien
一般會員


發表:15
回覆:21
積分:7
註冊:2005-05-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-13 16:15:21 IP:61.230.xxx.xxx 未訂閱
RedSnow,我現在的情形是,當去call外部的一個function時,我要等這個程式跑完再繼續下一部,可是當外部這個function在跑時,我的視窗都不能拖拉,移動位置,假如切到另外一個視窗在切回來時,就換不回來了...感覺起來就好像當機了...我有用過 Application->ProcessMessages();,我把它加在那個外部function中..可是還是倍lock住了..
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-13 17:04:54 IP:221.169.xxx.xxx 未訂閱
引言: RedSnow,我現在的情形是,當去call外部的一個function時,我要等這個程式跑完再繼續下一部,可是當外部這個function在跑時,我的視窗都不能拖拉,移動位置,假如切到另外一個視窗在切回來時,就換不回來了...感覺起來就好像當機了...我有用過 Application->ProcessMessages();,我把它加在那個外部function中..可是還是倍lock住了..
試試Sleep(100); 請參考! Andy Chang
------
Andy Chang
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-13 18:43:22 IP:219.137.xxx.xxx 未訂閱
liang-shien 您好: 這可能還是需要知道您是怎麼寫的才行,如果方便的話,請將您的相關敘述貼上來,或者將程式上傳到 "會員求助程式檔案上傳區",這樣比較容易找出問題的所在。
系統時間:2024-06-08 0:47:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!