請問Form 和Form之間的問題... |
尚未結案
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
|
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
|
huanyuan
一般會員 發表:18 回覆:48 積分:18 註冊:2003-07-14 發送簡訊給我 |
引言: 應該不用用到Sender 寫個共同變數 當各Form呼叫FormD時順道修改該值 當FormD,Show時判斷該變數值即可知道是誰在call這個方式我用過了...只是在想說還有沒有辦法不用到共同變數的方式... 感謝大大指導...感恩...void __fastcall TForm2::FormShow(TObject *Sender) { if(CommVar=="FormA") { } else if(CommVar=="FormB") //..........; } |
yorkland
高階會員 發表:2 回覆:138 積分:108 註冊:2004-12-17 發送簡訊給我 |
|
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
|
海星
高階會員 發表:41 回覆:217 積分:106 註冊:2003-01-09 發送簡訊給我 |
有三種做法: (1)
在 FormD Class 的 public:
加上一個自訂函數 bool Execute( int a);
a 就是你的 From 代碼(自己用 enum去訂),
程式碼內容就是
bool TFormD::Execute( int a)
{
FormD->Show();
switch(a)
{
case 1:
// 做你要做的事:
break;
case 2:
// 依此類推.
}
} ==================
例如 FormA 要呼叫 FormD 原本是用FormD->Show(); 那現在就變成
FormD->Execute(1); 一樣的效果。 (2)
一樣在FormD class public 上加上一個變數(例如 int Work),也就是rogan321大大講的方法,再呼叫 FormD->Show() 之前,先設定 FormD->Work = 1; (3)
什麼都不需要,直接在 FormA、B、C 呼叫 FormD就好了..
傳回的變數,直接在 A,B,C內處理就夠了.
if( FormD->ShowModal() == mrOk)
{
DM->Query1->ParamByName("Zone")->AsString = FormD->Edit1->Text;
DM->Query1->Open();
} 以上三種方法自己去選一個來用吧...
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |