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

如何在Active Form上呼叫另一個Active Form

答題得分者是:gemi0305
ALFA
一般會員


發表:8
回覆:11
積分:3
註冊:2003-07-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-26 16:16:52 IP:203.70.xxx.xxx 未訂閱
如題…請問要怎麼樣在Active Form上呼叫另一個Active Form呢??
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-27 10:19:25 IP:61.224.xxx.xxx 未訂閱
ALFA你好, 如果要做到在ActiveForm上呼叫另一個ActiveForm的的話, 可能要用另一種方式, 如: 在ActiveForm上呼叫另一個browser來開啟另一個ActiveForm, 或是 在ActiveForm上,另呼叫一個Form, 這兩種我皆實作過, 不知那種能幫助你的問題?? 國泰平安
ALFA
一般會員


發表:8
回覆:11
積分:3
註冊:2003-07-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-27 12:54:19 IP:203.70.xxx.xxx 未訂閱
gemi0305你好,我是想在ActiveForm上,另呼叫一個Form,用同一個browser,可不可以請你教我怎麼做呢?? 謝謝 發表人 - alfa 於 2003/07/27 12:57:25
ALFA
一般會員


發表:8
回覆:11
積分:3
註冊:2003-07-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-27 12:55:58 IP:203.70.xxx.xxx 未訂閱
gemi0305你好,關於你說的第一種方法,我有點看不太懂,是不是關啟另一個browser視窗呢 謝謝 發表人 - alfa 於 2003/07/27 13:01:14
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-27 13:00:21 IP:61.224.xxx.xxx 未訂閱
ALFA你好,    參考以下文章,    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31172    不只說到可開啟另一個form,還提到如何兩個form的互傳訊息    參考看看 國泰平安
ALFA
一般會員


發表:8
回覆:11
積分:3
註冊:2003-07-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-27 13:13:53 IP:61.221.xxx.xxx 未訂閱
我先試試看好了~~~,有問題再問你,謝謝你囉!!
ALFA
一般會員


發表:8
回覆:11
積分:3
註冊:2003-07-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-05 17:00:49 IP:61.218.xxx.xxx 未訂閱
gemi0305您好,關於您給我的資訊,我試過了,現在可以Active Form呼叫另一個Form,只是個人是個BCB初學者,在二個 > 謝謝
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-05 18:11:43 IP:210.66.xxx.xxx 未訂閱
照此修改, 這是拿之前叫你參考的那個程式。 你在ActiveForm上加兩個Edit,在另一個Form上也加兩個Edit,    然後當你開始這個Form給值,在關閉這個Form時, 它就會把Form上兩個Edit的值傳給ActiveForm上的兩個Edit上了。    記得,edit1是傳文字,edit2是傳數字,別在edit2上打非數字的東西。    我只有說明一種傳值的方式,請抓住精神在「共用全域變數」, 其實還有很多變化的寫法,請好好思考一下。 < class="code"> //--------------------------------------------------------------------------- // MyStruct.h #ifndef __MYSTRUCT_H__ #define __MYSTRUCT_H__ typedef struct _MYSTRUCT { char szChar[16]; int iInt; } MyStruct; #endif // __MYSTRUCT_H__ //--------------------------------------------------------------------------- // ActiveFormX01Impl1.cpp #include "ActiveFormX04Impl1.h" #include "Unit1.h" #include "MyStruct.h" TForm1 *f1; MyStruct ms; void __fastcall TActiveFormX01::Button1Click(TObject *Sender) { lstrcpy(ms.szChar, "ActiveForm"); ms.iInt=0; f1=new TForm1(Application); f1->ShowModal(); Edit1->Text=AnsiString((char*)ms.szChar); Edit2->Text=IntToStr(ms.iInt); } void __fastcall TActiveFormX01::Button2Click(TObject *Sender) { ShowMessage(ms.szChar); ShowMessage(IntToStr(ms.iInt)); } //--------------------------------------------------------------------------- // Unit1.cpp #include "Unit1.h" #include "MyStruct.h" extern MyStruct ms; void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage(ms.szChar); ShowMessage(IntToStr(ms.iInt)); lstrcpy(ms.szChar, Edit1->Text.c_str()); ms.iInt=Edit2->Text.ToInt(); } 國泰平安 發表人 - Gemi0305 於 2003/08/05 19:04:51
ALFA
一般會員


發表:8
回覆:11
積分:3
註冊:2003-07-26

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-06 11:56:34 IP:61.221.xxx.xxx 未訂閱
gemi0305您好,謝謝您這麼幫我了,我看懂了,不過還有一個小問題,以下: // Unit1.cpp #include "Unit1.h" #include "MyStruct.h" extern MyStruct ms; void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage(ms.szChar); ShowMessage(IntToStr(ms.iInt)); lstrcpy(ms.szChar, Edit1->Text.c_str()); ms.iInt=Edit2->Text.ToInt(); Form1->Close();//----->加入這一行會有問題嗎? } 我的程式會有這樣的錯誤訊息: Access violation at address 40056CB1 in module 'VCL50.BPL'. Read of address 000002CC. 這是怎麼一回事呢?? 謝謝 發表人 - alfa 於 2003/08/06 12:10:33
ALFA
一般會員


發表:8
回覆:11
積分:3
註冊:2003-07-26

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-08-09 11:21:11 IP:203.70.xxx.xxx 未訂閱
我已經找到解法了:只要把Form1->Close();改成this->Close();就行了。。。
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-08-10 16:18:49 IP:61.224.xxx.xxx 未訂閱
ALFA你好,    我是現在才看到你回應文章,不好意思, 才是現在才看到你問題,不過後來你已經自已找到解決方法, 恭喜了~ 剛剛看了一下,你呼叫一個Form出來, 如果只是要做輸入值的動作,其實可以用另一種方法, 我也在ActiveForm常用的,因為可以不用怕錯按"倒退鍵"~ 就是用InputBox,如:    Edit1->Text=InputBox("請輸入姓名","姓名 :  ",""); Edit2->Text=InputBox("請輸入電話","電話 :  ","");    可以放在ButtonClick或是EditClick或是其他,看你怎麼用, 你也可試試看 國泰平安
系統時間:2024-04-29 6:06:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!