自動 show 一個 form 和關才它 |
答題得分者是:ccchen
|
dirboy
一般會員 發表:7 回覆:16 積分:9 註冊:2002-07-15 發送簡訊給我 |
我想做一個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 發送簡訊給我 |
引言: 我想做一個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 發送簡訊給我 |
可以將此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 發送簡訊給我 |
|
dirboy
一般會員 發表:7 回覆:16 積分:9 註冊:2002-07-15 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |