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

動態建立Form

尚未結案
giga_lai
一般會員


發表:1
回覆:5
積分:1
註冊:2002-07-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-17 09:42:48 IP:61.231.xxx.xxx 未訂閱
請問如何動態建立Form 原本建立Form時使用如下程式 Form1 := TForm1.Create(Application); Form2 := TForm2.Create(Application); . . Form10 := TForm10.Create(Application); 若有10個TForm(Form1,Form2,Form3......Form10),請問該如何動態建立Form 謝謝!
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-17 10:09:17 IP:211.23.xxx.xxx 未訂閱
你的問題有點奇怪耶~讓人家摸不著頭腦~ 你要動態建立十個FORM~就像你上面所寫的一樣啊~ 還是我沒有搞懂你的問題~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 發表人 - Jasonwong 於 2003/06/17 10:10:05
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Justmade
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-17 10:16:24 IP:218.16.xxx.xxx 未訂閱
在每個 Form Unit 的最後加上
initialization
  RegisterClass(TForm1); // TForm1 改成該 Form 的 Form Class
之後主程式便可不用 uses 那些 unit 直接以字串動態建立 Form 了,如
var i : integer;
    Fm : TForm;
begin
  for i := 1 to 10 do
  begin
    Fm := TFormClass(FindClass('TForm'   IntToStr(i))).Create(Application);
    Fm.xxx := yyy;
    Fm.Show;
  end;
end;
不過這樣就不能 Assign 給 Form1, Form2 等變數了 你也可參考一下 : 態以 Form 的 ClassName (字串) 建立唯一視窗 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30803 'TForm' IntToStr(i) 才直,最近 K.Top 的 [ code ] 系統有問題 一個 ' 會變四個 發表人 - Justmade 於 2003/06/17 10:23:24
giga_lai
一般會員


發表:1
回覆:5
積分:1
註冊:2002-07-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-17 10:30:28 IP:61.231.xxx.xxx 未訂閱
請問如何動態建立Form 原本建立Form時使用如下程式 Form1 := TForm1.Create(Application); Form2 := TForm2.Create(Application); . . Form10 := TForm10.Create(Application); 若有10個TForm(Form1,Form2,Form3......Form10),請問該如何動態建立Form 抱歉!題意不夠清楚。 問題應該是如何用一廻圈動態建立Form。(因我在程式中放入10個Button,每按1個Button需建立一個TForm) 謝謝!
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-17 10:33:07 IP:211.76.xxx.xxx 未訂閱
giga_lai: 我看了半天這個問題應該不算是 "資料庫" 方面有關吧! 請移區討論, 謝謝 ...
------
將問題盡快結案也是一種禮貌!
giga_lai
一般會員


發表:1
回覆:5
積分:1
註冊:2002-07-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-17 11:14:22 IP:61.231.xxx.xxx 未訂閱
引言: 在每個 Form Unit 的最後加上
initialization
  RegisterClass(TForm1); // TForm1 改成該 Form 的 Form Class
之後主程式便可不用 uses 那些 unit 直接以字串動態建立 Form 了,如
var i : integer;
    Fm : TForm;
begin
  for i := 1 to 10 do
  begin
    Fm := TFormClass(FindClass('TForm'   IntToStr(i))).Create(Application);
    Fm.xxx := yyy;
    Fm.Show;
  end;
end;
不過這樣就不能 Assign 給 Form1, Form2 等變數了 你也可參考一下 : 態以 Form 的 ClassName (字串) 建立唯一視窗 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30803 'TForm' IntToStr(i) 才直,最近 K.Top 的 [ code ] 系統有問題 一個 ' 會變四個 發表人 - Justmade 於 2003/06/17 10:23:24
謝謝您的答覆,問題已解決。再請問TDataModule該如何動態建立。謝謝!
Justmade
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-17 11:26:08 IP:218.16.xxx.xxx 未訂閱
原理一樣丫 var i : integer; DM : TDataModule; begin ... DM := TDataModule(TComponentClass(FindClass('TDataModule' IntToStr(i))).Create(Application)); ...
系統時間:2024-05-02 16:16:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!