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

該如何分辨兩個Form2

答題得分者是:pcboy
luckyjoe
一般會員


發表:1
回覆:9
積分:12
註冊:2007-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-28 07:05:23 IP:220.139.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code">#include #pragma hdrstop #include "Unit1.h" #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Form2 = new TForm2(Application); Form2->Show(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Form2->Memo1->Lines->Add("1"); } //--------------------------------------------------------------------------- </textarea><br />
我爬過文~似乎沒有我要的答案@@

我的Button1可以動態產生Form2

如果我案兩次

也就會產生兩個Form2

這時候案Button2

只有第二個的Form2的Memo1會add "1"

請問我該怎麼分辨這兩個Form2

該如何讓Form1對特定的Form2下指令

我不用Form3的原因是...新產生的視窗(除Form1以外)都是相同的程式碼
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-28 08:53:51 IP:61.220.xxx.xxx 訂閱
不要用 new, 否則會不斷產生新的 Form

<textarea class="cpp" rows="10" cols="60" name="code">void __fastcall TForm1::Button1Click(TObject *Sender) { Form2->Visible = True; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { // File下拉選單 / New 選項 / Form => 會產生 Form2 Form2->Visible = False; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Form2->Memo1->Lines->Add("1"); } //--------------------------------------------------------------------------- </textarea>
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
luckyjoe
一般會員


發表:1
回覆:9
積分:12
註冊:2007-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-28 09:06:31 IP:220.139.xxx.xxx 訂閱
我希望能產生很多Form (這些FORM的程式碼相同) (案一次Button 產生一個)

而我想知道該怎麼分辦他們

因為他們好像都叫做Form2

po文沒說清楚~sorry
編輯記錄
luckyjoe 重新編輯於 2007-08-28 09:07:07, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-28 09:15:01 IP:61.220.xxx.xxx 訂閱
給每個 Form 一個名稱
<textarea class="cpp" rows="10" cols="60" name="code"> int Form_Index=2; void __fastcall TForm1::Button1Click(TObject *Sender) { Form1->Name= "Form" IntToStr(Form_Index) ; Form_Index = Form_Index 1; } </textarea>
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
luckyjoe
一般會員


發表:1
回覆:9
積分:12
註冊:2007-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-28 09:17:31 IP:220.139.xxx.xxx 訂閱
似乎還是有點問題

用p大的方法~還是只有最後一個form2會改name
編輯記錄
luckyjoe 重新編輯於 2007-08-28 10:13:48, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-08-28 11:31:30 IP:140.92.xxx.xxx 訂閱
結案了還是可以問

不懂你的意思

小弟測試的時候, 每按一下 Button , Form 上的 Name 確實有從 Form2, Form3 一直變化
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
luckyjoe
一般會員


發表:1
回覆:9
積分:12
註冊:2007-08-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-08-28 11:38:05 IP:220.139.xxx.xxx 訂閱
我希望我的mainform能對不同form2(我有兩個以上的form2)下不同指令

但是如果我執行Form2->Memo1->Lines->Add("1");

只能對最後產生的form2有效

該怎麼分辨 都是form2的視窗??
編輯記錄
luckyjoe 重新編輯於 2007-08-28 11:40:06, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-08-28 11:42:55 IP:210.241.xxx.xxx 訂閱
沒有什麼不同的 Form2
為了分辨, 所以讓新產生的 Form 有不同的名稱
分別是 Form2, Form3, Form4, ....

你就只有一個稱為 Form2
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
luckyjoe
一般會員


發表:1
回覆:9
積分:12
註冊:2007-08-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-08-28 11:48:57 IP:220.139.xxx.xxx 訂閱

===================引 用 pcboy 文 章===================
沒有什麼不同的 Form2
為了分辨, 所以讓新產生的 Form 有不同的名稱
分別是 Form2, Form3, Form4, ....

你就只有一個稱為 Form2

===================================================
可是如果用我一樓的程式

案兩次Button1 不就會產生兩個form2嗎

pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-08-28 12:26:39 IP:61.220.xxx.xxx 訂閱
基本上Form元件不能有相同名稱, 1樓的程式根據實際測試, 只有最後一個會出現1
這表示最後一個出現的才能算Form2, 其他實際上都不能算是Form2

而且關閉最後一個Form2後, 按下button2, 不會有任何Form2的Memo1出現1
也表示他們的已經不是Form2, 甚至可能已經無法從程式中去控制他們了(手動還是可以關閉他們)

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
wubelin
一般會員


發表:2
回覆:14
積分:18
註冊:2007-10-04

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-12-10 12:37:56 IP:60.198.xxx.xxx 訂閱
每個form的name應該是不一樣的

可以在form上面放個按鈕

程式碼 this->Caption = this->Name;

這樣當你按下去,就知道那個form的name了

理論上可能會像是Form2_1, Form2_2這樣吧,因為不會重複
系統時間:2024-04-18 20:48:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!