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

自動 show 一個 form 和關才它

答題得分者是:ccchen
dirboy
一般會員


發表:7
回覆:16
積分:9
註冊:2002-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-22 12:24:39 IP:202.175.xxx.xxx 未訂閱
我想做一個Form, 在form show 出來之後, 自動完成一些code(這些code 會改變form 中component 的外型, 用戶也需要看到這種變化的過程), 完成後, 自動 caFree 自已, 再把自己等於 Nil. 在OnCreate 和 OnShow 中運行這些code 好像不行, 所以我用了一個Timer, 在form.OnShow 中 enable 這個timer, timer 再實作那些code, 完了後timer 自己 disable 自己(即只實作一次), 再caFree 和 Nil 掉自已的Form. 不知大家有什麼好一點的方法, 我覺得我的方法太笨.
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-22 12:39:23 IP:61.218.xxx.xxx 未訂閱
引言: 我想做一個Form, 在form show 出來之後, 自動完成一些code(這些code 會改變form 中component 的外型, 用戶也需要看到這種變化的過程), 完成後, 自動 caFree 自已, 再把自己等於 Nil. 在OnCreate 和 OnShow 中運行這些code 好像不行, 所以我用了一個Timer, 在form.OnShow 中 enable 這個timer, timer 再實作那些code, 完了後timer 自己 disable 自己(即只實作一次), 再caFree 和 Nil 掉自已的Form. 不知大家有什麼好一點的方法, 我覺得我的方法太笨.
有沒有原始程市
------
︿︿
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-22 14:23:38 IP:61.219.xxx.xxx 未訂閱
可以將此form之create 及Free交給上一層form 例如在Mainform上
procedure TForm1.Button1Click(Sender: TObject);
var f2:TForm2;
  i:integer;
begin
  f2:=TForm2.create(self);  //create該Form
  f2.show;   
  application.ProcessMessages;
  f2.close;                 //當f2執行完該執行之code, close it
  f2.Free;
end;
在該form中,以下create一button,並移動此button做為測試
procedure TForm2.FormActivate(Sender: TObject);
var i:integer;
  btn:TButton;
begin
  btn:=TButton.create(self);
  btn.parent:=self;
  btn.setbounds(0,0,50,50);
  for i:=0 to 100 do begin
    btn.left:=btn.left 2;
    btn.top:=btn.top 2;
    refresh;
    sleep(10);
  end;
end;
dirboy
一般會員


發表:7
回覆:16
積分:9
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-22 14:41:55 IP:202.175.xxx.xxx 未訂閱
謝謝ccchen, 請問 Application.ProcessMessage 在這裡運用有什麼別的特別作用? Form.show 完後, 因為不是showModal 後跟的Form.close 和 Form := Nil 會不會馬上被執行?
dirboy
一般會員


發表:7
回覆:16
積分:9
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-22 22:05:19 IP:202.175.xxx.xxx 未訂閱
已實驗過了, 很成功, 謝謝ccchen !!!
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-23 09:48:04 IP:203.217.xxx.xxx 未訂閱
謝謝ccchen, 請問 Application.ProcessMessage 在這裡運用有什麼別的特別作用? Application.ProcessMessage主要是,暫時停止見前程式(i.e)緊接於後之form.close 和 Form := Nil 先去處理完messageQueue之內容.
系統時間:2024-04-28 15:00:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!