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

如何在程式結束時停止程式中所有的LOOPs?

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-07 17:16:19 IP:61.150.xxx.xxx 未訂閱
各位先進好! 請問有沒有一個辦法,在結束程式時,可以停止程式中所有的Loops‧我試著照下面方法設計,但不起作用. 我定義了一個型別為Boolean 的 global variant,並在每個Loop中設定如果這個 Boolean variant 為 True,則 break, 當Form1.create發生時將這個variant 設為 false, 當Form1.close 發生時將這個variant 設為 true, 但Form1.close發生時,所有的Loops並沒有停止. 見以下 code: var TerminateLoop:Boolean; ... procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin repeat ... if terminateLoop then break; ... Until 1=0; end; procedure TForm1.FormShow(Sender: TObject); begin ... while 1<>0 do begin ... if terminateLoop then break; ... end; end; procedure TForm1.FormCreate(Sender: TObject); begin ... TerminateLoop:=false; ... end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ... TerminateLoop:=true; ... end;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-07 17:34:08 IP:218.16.xxx.xxx 未訂閱
你要在每個 LOOP 中加一句 Application.ProcessMessages 的否則 TerminateLoop:=true 根本就無機會執行 procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin repeat ... Application.ProcessMessages; if terminateLoop then break; ... Until 1=0; end;
系統時間:2024-05-16 13:50:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!