Form連結的問題 |
答題得分者是:GrandRURU
|
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
你好
我想問的問題是這樣的 程式中有3個Form,從Form1連到Form2,Form2在連到Form3 但當我執行程式後,卻發現Form1出現後Form3也跟著出現,可是Form1可以很正常的連到Form2,就是不知道我是哪邊錯了 所以想請教前輩們。 |
hipig
高階會員 發表:31 回覆:75 積分:111 註冊:2007-01-15 發送簡訊給我 |
原因很簡單
問題出在 [code cpp] void __fastcall TForm2::ThtimeTimer(TObject *Sender) { Thtime->Enabled=false; Form2->Visible=false; Form3->Show(); } [/code] 你使用靜態呼叫Form2 所以Form2在程式一執行時就已經啟動了 而Form2的Timer又預設啟動 所以執行後一秒Form3就跳出來了 修正方式簡單的做就是加上這兩段 [code cpp] void __fastcall TForm2::FormCreate(TObject *Sender) { Thtime->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm2::FormShow(TObject *Sender) { Thtime->Enabled = true; } //--------------------------------------------------------------------------- [/code] 另外你這樣寫最後會有一些流程上的問題(還有吃記憶體) 建議仔細考慮寫法 |
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
你好
可是我把兩段程式加上去 卻出現,FormCreate、FormShow 不是TForm2的成員,是我哪邊又出現錯誤了?? 另外,前輩你說在一些流程上會有問題(還有吃記憶體) 要我仔細考慮寫法,那可以請你給我一點建議嗎?? 謝謝 ===================引 用 hipig 文 章=================== 原因很簡單 問題出在 [code cpp] void __fastcall TForm2::ThtimeTimer(TObject *Sender) { Thtime->Enabled=false; Form2->Visible=false; Form3->Show(); } [/code] 你使用靜態呼叫Form2 所以Form2在程式一執行時就已經啟動了 而Form2的Timer又預設啟動 所以執行後一秒Form3就跳出來了 修正方式簡單的做就是加上這兩段 [code cpp] void __fastcall TForm2::FormCreate(TObject *Sender) { Thtime->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm2::FormShow(TObject *Sender) { Thtime->Enabled = true; } //--------------------------------------------------------------------------- [/code] 另外你這樣寫最後會有一些流程上的問題(還有吃記憶體) 建議仔細考慮寫法 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
你好,多謝你的回應
很抱歉,關於事件函式我真的不會, 於是我在網路上有找類似的程式, void __fastcall TForm1::Timer1Timer(TObject *Sender) { count ; if (count = = 2) { Form1->Visible = false; Form2->Show( ); } } 可是,執行後會出現 Undefined symbol 'count' 的錯誤 可解說Count是計數器的變數,既然是變數為何有錯誤呢? 請問這是為什麼呢?? ===================引 用 GrandRURU 文 章=================== 純路過… 一、請檢查form2是否已建立onCreate、onFormShow等事件函式 二、這兩段請不要放在Form1內 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
count未被定義啦..........
count在這邊是公用變數 請在程式的上面 TForm *Form1; 下面加上 int count =0; ===================引 用 kill42el 文 章=================== 你好,多謝你的回應 很抱歉,關於事件函式我真的不會, 於是我在網路上有找類似的程式, void __fastcall TForm1::Timer1Timer(TObject *Sender) { count ; if (count = = 2) { Form1->Visible = false; Form2->Show( ); } } 可是,執行後會出現 Undefined symbol 'count' 的錯誤 可解說Count是計數器的變數,既然是變數為何有錯誤呢? 請問這是為什麼呢?? |
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
太厲害了
只要如前輩你所說的 在程式的上面 TForm *Form1; 下面加上 int count =0; 就可以了 但是,這樣還是跟原本一樣,form3還是會自己跑出 還是無法經由form2去連到form3 前輩,這樣我到底要怎麼解決啊?? 前輩,可以向你問一下onFormShow 這要怎麼宣告出來,謝謝 ===================引 用 GrandRURU 文 章=================== count未被定義啦.......... count在這邊是公用變數 請在程式的上面 TForm *Form1; 下面加上 int count =0; |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
.................
onFormShow在form的事件(event)裡啦 你bcb的書可能需要看幾本了 ===================引 用 kill42el 文 章=================== 太厲害了 只要如前輩你所說的 在程式的上面 TForm *Form1; 下面加上 int count =0; 就可以了 但是,這樣還是跟原本一樣,form3還是會自己跑出 還是無法經由form2去連到form3 前輩,這樣我到底要怎麼解決啊?? 前輩,可以向你問一下onFormShow 這要怎麼宣告出來,謝謝 ===================引 用 GrandRURU 文 章=================== count未被定義啦.......... count在這邊是公用變數 請在程式的上面 TForm *Form1; 下面加上 int count =0; |
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |