2017-08-20 6 views
0
for (int i = 1; i <= 10; i++) { 

    ButtonGroup1->Items->Add() ; 
    ButtonGroup1->Items->Items[i-1]->Caption = Q_Cat->FieldByName("cat_name")->AsString; 
    ButtonGroup1->Items->Items[i-1]->OnClick = ButtonGroup1->OnClick; 

あなたは私がここで「ButtonGroup1」という項目内のループのために使用して動的に10 groupbuttonitemsを作成し、私はそれぞれ1 =「ButtonGroup1」のonClickイベント ためにonClickイベントを作成し、ここにButtonGroup1のOnClickで、ここで見ることができるように私はいつもどのgroupbuttonitemそれをクリックしたときにイベントGET grpbuttonitemインデックスC++

void __fastcall TFrm_Test2::ButtonGroup1Click(TObject *Sender) 
{ 
Edit1->Text = ButtonGroup1->ItemIndex; 
} 

しかし、問題は= -1それは変わらないことはできません

enter image description here

と私は、このコード

Edit1->Text = ButtonGroup1->Items->Items[1]->ID; 

を使用してアイテムのインデックスを取得しようとしたとき、私は誰も私を助けることができるボタン項目が

をクリックされたグループを取得することはできません。..

+0

クリックした項目のインデックスは、C++ Builderのため、このコードはありますか? – VTT

+0

'Add()'は後ろまたは正面に挿入しますか?正面の場合は、常に同じインスタンスを変更しています。 – Aganju

+0

正面、そうです。しかし、私がinsert(int)を使うと同じ問題になるでしょう。 – Doksh

答えて

0

おかげで私は解決し、すべてのそれは最終的にコンポーネントのイベントをグループ化してOnButtonClickedというイベントを使用します。この

 void __fastcall TFrm_Orders::BG1ButtonClicked(TObject *Sender, int Index) { 
Edit1->Text = ButtonGroup1->Items->Items[Index]->ID; 
} 

here is the event name

のようなインデックスの値がButtonGroupを