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

創造新的Form且建立多個動態RadioGroup物件

尚未結案
TsannTay
一般會員


發表:20
回覆:34
積分:10
註冊:2003-04-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-14 00:41:56 IP:140.118.xxx.xxx 未訂閱
各位先進們,你們好: 問題如題所示, 因為一個主要Form的程式己經建立, 現在要加入新功能,必須加入新的Form, 而且在新的Form中要產生多個動態RadioGroup, 最後將RadioGroup輸入訊息傳回主要的Form,完作輸入動作. 請各位先進幫忙.
TsannTay
一般會員


發表:20
回覆:34
積分:10
註冊:2003-04-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-14 16:18:56 IP:140.118.xxx.xxx 未訂閱
我目前可以開啟新的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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-14 20:42:50 IP:61.56.xxx.xxx 未訂閱
我試了一下,可以了,如下: 標頭檔 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-14 21:49:22 IP:140.118.xxx.xxx 未訂閱
arnoyu,你好: 首先謝謝你試了這個程式, 我用了您所提供之方式測試了一下, 結果在 dym1=dynamic_cast(Sender); 此行出現問題,(錯誤訊息為 E2274 < expected) 您試的程式沒有此狀況嗎? 可以請您再次為我來解釋,好嗎?
arnoyu
中階會員


發表:73
回覆:88
積分:67
註冊:2003-03-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-14 22:12:01 IP:61.56.xxx.xxx 未訂閱
不好意思!忘了HTML遇到大於跟小於同時存在時會誤認為是命令行而被刪去.. 所以請將下面的《改成小於符號,》改成大於符號~~ dym1=dynamic_cast《TRadioGroup *》(Sender); 這個程式我run過確定沒問題.. ======================= ● 學孩無牙,唯勤是岸 ● ======================= 因為無牙,所以要勤奮的吸.. 待他日羽翼豐滿時,別忘了 這個滋潤我們成長的園地~~
TsannTay
一般會員


發表:20
回覆:34
積分:10
註冊:2003-04-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-15 00:51:42 IP:140.118.xxx.xxx 未訂閱
arnoyu: 非常感謝你的協助,使得程式可以順利建構.
系統時間:2024-05-15 16:01:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!