TsannTay
一般會員
發表:20 回覆:34 積分:10 註冊:2003-04-10
發送簡訊給我
|
各位先進們,你們好: 問題如題所示,
因為一個主要Form的程式己經建立,
現在要加入新功能,必須加入新的Form,
而且在新的Form中要產生多個動態RadioGroup,
最後將RadioGroup輸入訊息傳回主要的Form,完作輸入動作. 請各位先進幫忙.
|
TsannTay
一般會員
發表:20 回覆:34 積分:10 註冊:2003-04-10
發送簡訊給我
|
我目前可以開啟新的Form及動態多個RadioGroup物件,如程式所示,
亦可接收輸入之訊息,但我仍有許多問題,
1.在執行程式時,我在選擇RadioGroup中之RadioButton時,
可驅動我所要執行的函式.要如何作呢?
2.建立一個動態Button,其功能為關閉此一新的Form. 請各位先進幫忙,指點迷津. 原始程式碼:
TForm *Form2;
TRadioGroup *OARadio[10];
TButton *BtnArray; void __fastcall TForm1::Button1Click(TObject *Sender)
{
int Num,ChoiceQC[10];
AnsiString QCStyle[3]={"Smaller the Better","Larger the Better","Nomial the Better"};
Num=StrToInt(InputBox("Quality Character","Number",1)); try{
Form2 = new TForm(this);
Form2->Caption="Form2";
Form2->Parent = Form2;
Form2->Width=600;
Form2->Height=300; BtnArray = new TButton(Form2);
BtnArray->Parent = Form2;
BtnArray->Caption="OK";
BtnArray->Top=100;
BtnArray->Left=500;
for(int i=0; iCaption="Orthogonal Array";
OARadio[i]->Columns=3;
OARadio[i]->ItemIndex=-1;
OARadio[i]->Parent=Form2;
OARadio[i]->Top=50*i;
OARadio[i]->Width=450;
OARadio[i]->Height=50;
for(int j=0;j<3;j )
OARadio[i]->Items->Add(QCStyle[j]);
} Form2->ShowModal();
}
catch(Exception &exception)
{
delete Form2;
Application->ShowException(&exception);
} for(int i=0; iItemIndex;
//Memo1->Text=Memo1->Text IntToStr(ChoiceQC[i]) " ";
}
}
|
arnoyu
中階會員
發表:73 回覆:88 積分:67 註冊:2003-03-21
發送簡訊給我
|
我試了一下,可以了,如下:
標頭檔 Unit1.h 內容如下:
<僅需在 private 內加入2行>
//-------------------------------------------------------------------- #ifndef Unit1H
#define Unit1H
//--------------------------------------------------------------------
#include
#include
#include
#include <Forms.hpp>
#include <Buttons.hpp>
//--------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TBitBtn *BitBtn1;
void __fastcall BitBtn1Click(TObject *Sender);
private: // User declarations
void __fastcall BtnArrayClick(TObject *Sender);//自建事件函式宣告1
void __fastcall OARadioOneClick(TObject *Sender);//);//自建事件函式宣告2
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//--------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//-------------------------------------------------------------------
#endif Unit1.cpp 內容如下: //--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1; TRadioGroup *OARadio[10];
TButton *BtnArray;
TForm *Form2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{ int Num,ChoiceQC[10];
AnsiString QCStyle[3]={"Smaller the Better","Larger the Better","Nomial the Better"};
Num=StrToInt(InputBox("Quality Character","Number",1)); try{
Form2 = new TForm(this);
Form2->Caption="Form2";
Form2->Parent = Form2;
Form2->Width=600;
Form2->Height=300; BtnArray = new TButton(Form2);
BtnArray->Parent = Form2;
BtnArray->Caption="OK";
BtnArray->BtnArrayClick;
BtnArray->Top=100;
BtnArray->Left=500;
for(int i=0; iColumns=3;
OARadio[i]->ItemIndex=-1;
OARadio[i]->Parent=Form2;
OARadio[i]->OARadioOneClick;
OARadio[i]->Top=50*i;
OARadio[i]->Width=450;
OARadio[i]->Height=50;
for(int j=0;j<3;j )
OARadio[i]->Items->Add(QCStyle[j]); } Form2->ShowModal();
}
catch(Exception &exception)
{
delete Form2;
Application->ShowException(&exception);
} for(int i=0; iItemIndex; }
//---------------------------------------------------------------------------
//自建事件函式1
void __fastcall TForm1::BtnArrayClick(TObject *Sender)
{
Form2->Close();
} //---------------------------------------------------------------------------
//自建事件函式2
void __fastcall TForm1::OARadioOneClick(TObject *Sender)
{
TRadioGroup *dym1;
dym1=dynamic_cast(Sender);
if(dym1)
ShowMessage("您按下了:" dym1->Items->Strings[dym1->ItemIndex]);
} //--------------------------------------------------------------------------- 試試看ㄅ... =======================
● 學孩無牙,唯勤是岸 ●
=======================
因為無牙,所以要勤奮的吸..
待他日羽翼豐滿時,別忘了
這個滋潤我們成長的園地~~
|
TsannTay
一般會員
發表:20 回覆:34 積分:10 註冊:2003-04-10
發送簡訊給我
|
arnoyu,你好: 首先謝謝你試了這個程式,
我用了您所提供之方式測試了一下,
結果在
dym1=dynamic_cast(Sender);
此行出現問題,(錯誤訊息為 E2274 < expected)
您試的程式沒有此狀況嗎? 可以請您再次為我來解釋,好嗎?
|
arnoyu
中階會員
發表:73 回覆:88 積分:67 註冊:2003-03-21
發送簡訊給我
|
不好意思!忘了HTML遇到大於跟小於同時存在時會誤認為是命令行而被刪去..
所以請將下面的《改成小於符號,》改成大於符號~~
dym1=dynamic_cast《TRadioGroup *》(Sender); 這個程式我run過確定沒問題.. =======================
● 學孩無牙,唯勤是岸 ●
=======================
因為無牙,所以要勤奮的吸..
待他日羽翼豐滿時,別忘了
這個滋潤我們成長的園地~~
|
TsannTay
一般會員
發表:20 回覆:34 積分:10 註冊:2003-04-10
發送簡訊給我
|
arnoyu: 非常感謝你的協助,使得程式可以順利建構.
|