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

關於P.D.大大之前發表的程式暫停的方法一問

尚未結案
DoubleFish2004
一般會員


發表:6
回覆:12
積分:3
註冊:2004-05-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-26 17:11:06 IP:163.28.xxx.xxx 未訂閱
引文來源: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34239 --------------------------------------------------------------------- 我把重點貼出來 1.在form1.create(...)的最後一行加入 Application.onIdle:= StartRun; 2.在 private 下面加入 procedure StartRun(Sender: Tobject; var Done: boolean); 3.在 {$R *.DFM} 下加入 procedure TForm1.StartRun(Sender: Tobject; var Done: boolean); var xhandle: longInt; btime, etime: loginint; begin xhandle:= FindWindow('TForm1',nil); if xhandle = 0 then exit; Application.ProcessMessages; Application.OnIdle:= nil; Done:= True; btime:= gettickCount; etime:= getTickCount; repeat Application.ProcessMessage; etime:= getTickCount; until etime-btime > 5000; Form1.Close; end; 4.在 form1.close 加入 Action:= caFree; Form1:= nil; 原因: 在oncreate 未完成前如果執行任何close行為, 會導致Access的不可預期錯誤 所以加入 Application.onIdle:= StartRun, 指Form1 create完成, 會執行一個 onIdle事件, 這時我們指定onIdle去執行一個procedure, 在此做五杪的計數然 後關閉--OK! 另外, 使用 getTickCount 會比Timer來的方便, 而且至少我認為會比timer精準 提供你做建議~~ --------------------------------------------------------------------- 上面是以時間為基準,5秒後執行close 那如果我是希望能在FormShow事件完成後執行一個自訂的Procedure 那該如何判定FormShow事件是否完成了呢?
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-26 18:15:54 IP:61.221.xxx.xxx 未訂閱
DoubleFish2004 你好: 一般來說再 FormShow 裡面加上程式碼即可 如: procedure TForm1.FormShow(Sender: TObject); begin Timer1.Enabled:=true; end;
------
======================
昏睡~
不昏睡~
不由昏睡~
系統時間:2024-05-17 20:08:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!