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

請問程式在while迴圈中,如何用另一個button使其跳出 ^^

答題得分者是:qoo1234
tab0922
一般會員


發表:4
回覆:3
積分:1
註冊:2004-10-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-10 21:36:52 IP:134.208.xxx.xxx 未訂閱
我是一個新手~~ ^^ 請問程式如果在一個while迴圈中run~~ 如何能用另一個事件來使程式跳離這個迴圈~~ 我知道在VB中有一個doevents,可以使程式即使在while迴圈中~~ 還是可以用另一個事件來跳離它~~ 請問在delphi有類似的方法嗎~~ 翻了二本厚厚的書和查了好多文章還是找不到,只好求助於各位高手了 ^^
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-10 22:06:04 IP:220.131.xxx.xxx 未訂閱
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;
  stop : Bool;
implementation    {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  i := 1;
  stop:=False;
  While i <= 100 do
  begin
    Application.ProcessMessages;
    if stop=true then
      Break;
    Memo1.Lines.Add(IntToStr(i));
    Inc(i);
  end;
end;    procedure TForm1.Button2Click(Sender: TObject);
begin
 stop:=not stop;
end;    end.
 
網海無涯,唯學是岸!
change.jian
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-10 22:11:02 IP:61.229.xxx.xxx 未訂閱
hi,tab0922:    1.我沒有用過VB,所以我不曉得doevents是怎麼回事.    2.原則上來說,一個while迴圈的執行,是不可能被其他程式中斷的.但可以藉由在迴圈中檢查一個變數以決定是否繼續執行來達到你要的目的.如下,希望有解決你的問題: < class="code"> unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private FNeedBreak:Boolean; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var c:Currency; begin c:=0; FNeedBreak:=False; while not(FNeedBreak) do begin c:=c 1; Label1.Caption:=CurrToStr(C); Application.ProcessMessages; sleep(100); end; end; procedure TForm1.Button2Click(Sender: TObject); begin FNeedBreak:=True; end; end.
change.jian
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-10 22:14:48 IP:61.229.xxx.xxx 未訂閱
耶~~貼完才看到,qoo1234已先回了...
tab0922
一般會員


發表:4
回覆:3
積分:1
註冊:2004-10-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-10 22:29:35 IP:134.208.xxx.xxx 未訂閱
謝謝你們二位 ^^ 呵呵 真的是學海無涯丫 ^^
系統時間:2024-05-17 10:20:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!