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

不同表單傳值給combobox的問題

缺席
licheer
一般會員


發表:23
回覆:20
積分:8
註冊:2007-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-13 22:40:23 IP:61.225.xxx.xxx 訂閱
有兩個 form, form2 會用到 form1 的變數
已經在 form2 include 了 form1.h
我把要給 combobox 的內容寫在 formcreate 裡
可是這樣沒辦法將值從 form1 傳過來
必須把動作寫在 button 內, click 後值才會傳給 form2
請問有什麼方法可以直接再 form2 一打開就 get 到值呢?
THX
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-14 02:11:51 IP:123.193.xxx.xxx 訂閱
列舉三種方式, 提供你參考...

[code cpp]
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:
TButton *Button1;
TButton *Button2;
TButton *Button3;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
public:
String SSS;
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
[/code]

[code cpp]
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{
SSS = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TForm2* f2 = new TForm2(this);
try{
f2->ComboBox1->Items->CommaText = "AAA,BBB,CCC";
f2->ComboBox1->ItemIndex = 0;
f2->ShowModal();
}
__finally{
delete f2;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TForm2* f2 = new TForm2(this, "DDD,EEE,FFF");
try{
f2->ShowModal();
}
__finally{
delete f2;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
SSS = "GGG,HHH,III";
TForm2* f2 = new TForm2(this);
try{
f2->ShowModal();
}
__finally{
delete f2;
}
}
//---------------------------------------------------------------------------
[/code]

[code cpp]
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:
TComboBox *ComboBox1;
public:
__fastcall TForm2(TComponent* Owner);
__fastcall TForm2(TComponent* Owner, String s);
};
//---------------------------------------------------------------------------
[/code]

[code cpp]
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner): TForm(Owner)
{
if(((TForm1*)Owner)->SSS!=""&&ComboBox1){
ComboBox1->Items->CommaText = ((TForm1*)Owner)->SSS;
ComboBox1->ItemIndex = 0;
((TForm1*)Owner)->SSS = "";
}
}
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner, String s): TForm(Owner)
{
ComboBox1->Items->CommaText = s;
if(ComboBox1->Items->Count>0)
ComboBox1->ItemIndex = 0;
}
//---------------------------------------------------------------------------
[/code]




===================引 用 licheer 文 章===================
有兩個 form, form2 會用到 form1 的變數
已經在 form2 include 了 form1.h
我把要給 combobox 的內容寫在 formcreate 裡
可是這樣沒辦法將值從 form1 傳過來
必須把動作寫在 button 內, click 後值才會傳給 form2
請問有什麼方法可以直接再 form2 一打開就 get 到值呢?
THX
yubad2000
中階會員


發表:0
回覆:44
積分:78
註冊:2007-09-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-14 06:22:02 IP:66.171.xxx.xxx 未訂閱
Please try put your code of OnClick event in Form2's OnActive event. 
Then see how it works.
===================引 用 licheer 文 章===================
有兩個 form, form2 會用到 form1 的變數
已經在 form2 include 了 form1.h
我把要給 combobox 的內容寫在 formcreate 裡
可是這樣沒辦法將值從 form1 傳過來
必須把動作寫在 button 內, click 後值才會傳給 form2
請問有什麼方法可以直接再 form2 一打開就 get 到值呢?
THX
------
===波士頓夜未眠===
What a wonderful world!!
Jazz up the world with jazz!!
==================

When I am not programming...
you can find me here:
http://www.holy-war.de/EN/World3/bin/?advertiser=63190
licheer
一般會員


發表:23
回覆:20
積分:8
註冊:2007-08-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-12-14 09:18:28 IP:220.130.xxx.xxx 訂閱
form1->Num 是在 form1 跑一個function後, 會得到的數量
form1->Name[i] 是對應每一個 num 的名稱
我要把這兩個值傳過來自動加進去 form2 的 combobox

下面這段我寫在 form2 的 formcreate 是沒有作用的
可是改寫到 buttonclick 裡後, 就能把那些值抓過來

[code cpp]
for ( int i=0; i<form1->Num ; i )

ComboBox2->Items->Add(form1->Name[i]);
[/code]
licheer
一般會員


發表:23
回覆:20
積分:8
註冊:2007-08-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-12-17 11:24:38 IP:220.130.xxx.xxx 訂閱
想到方法了
寫在 formactive 就 ok 了~!
系統時間:2024-11-26 3:51:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!