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

如何在顯示圖片時,仍有視窗的控制權

答題得分者是:dllee
licheer
一般會員


發表:23
回覆:20
積分:8
註冊:2007-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-12 15:08:16 IP:220.130.xxx.xxx 訂閱
我參考網站上的資料

寫出以之字形排列出25張圖片的function

可是在顯示的過程中,完全不能對此視窗做其他命令(拖曳....等)

要等到25張都跑完後,控制權才又會到使用者

請問要怎麼解除這個問題呢

進一步,我想下命令中斷他, 大概要怎麼寫呢?

附上我的code, 先謝謝各位 ~~ ^^



<textarea cols="60" rows="10" class="cpp" name="code"> for (int i = 0 ; i < 25 ; i )
{
ImgPic[i] = new TImage(Application);
ImgPic[i]->Parent = Form1;
ImgPic[i]->Width = 160;
ImgPic[i]->Height = 120;
ImgPic[i]->Top = (i/5)*(10 120);

// place five image from right to left
if (((i / 5) % 2) == 0)
ImgPic[i]->Left = 10 (i%5)*(10 160);
// place next five image from left to right
if (((i / 5) % 2) == 1)
ImgPic[i]->Left = (1024-174) - ((i%5)*10 (i%5 1)*160);
// display image one by one
ImgPic[i]->Stretch = true;
ImgPic[i]->Picture->LoadFromFile(IntToStr(i) ".bmp");
Refresh();
Sleep(100);
}
for (int i = 0 ; i < 25 ; i )
ImgPic[i]->Picture = NULL; </textarea><br />
編輯記錄
licheer 重新編輯於 2007-09-12 15:09:59, 註解 無‧
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-12 15:27:50 IP:59.105.xxx.xxx 訂閱
把 Sleep(100);
改成 Application->ProcessMessages()
宣告一個表單變數如
bool bAbort;
在 for loop 之前設定
bAbort = false;
在 for loop 內加上
if(bAbort) break;
在表單中加一個按鈕, 按下時設定 bAbort=true; 即可在 for loop 時中止它。
另外建議,
ImgPic[i] = new TImage(Application); 移到表單建構元作,
不然,每次跑一次 for loop 就 new 一次,會造成 Memory Leakage

------
http://www.ViewMove.com
licheer
一般會員


發表:23
回覆:20
積分:8
註冊:2007-08-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-12 16:17:45 IP:220.130.xxx.xxx 訂閱
學起來了~
謝謝
系統時間:2024-05-04 9:45:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!