XE3下面,调试一个创建组件的代码,事件响应处理有些问题,大伙帮忙调试一下
新建一个FireMonkey应用程序。调试在界面上动态创建一些控件,添加响应事件。
其中创建的Button的所有都可以响应Button1Click事件。
但创建的myMetroListBoxItem,只有这个ListBox下面的第一个Item可以响应Button1Click事件,其它的都不响应。
编译没有问题。请专家们会诊一下。谢谢。
全部代码如下。
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TButton *btn;
for(int i=1; i<=4; i++)
{
btn = new TButton(this);
btn->Parent = this;
btn->Position->Y = 100 * i;
btn->Position->X = 900;
btn->Text = "按钮" + IntToStr(i);
btn->OnClick = Button1Click;
}
TListBox *myListBox;
TMetropolisUIListBoxItem *myMetroListBoxItem;
for(int j=0; j<3; j++)
{
myListBox = new TListBox(this);
myListBox->Parent = this;
myListBox->Width = 300;
myListBox->Position->X = 300*j;
myListBox->Align = TAlignLayout::alLeft;
myListBox->ItemHeight = 250;
myListBox->ItemWidth = 250;
myListBox->StyleLookup = "transparentlistboxstyle";
myListBox->BeginUpdate();
for(int i=0; i<3; i++)
{
myMetroListBoxItem = new TMetropolisUIListBoxItem(this);
myMetroListBoxItem->Parent = myListBox;
myMetroListBoxItem->StyleLookup = "collectionlistboxitem";
myMetroListBoxItem->OnClick = Button1Click;
}
myListBox->EndUpdate();
}
}
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage("响应我的事件");
}
//---------------------------------------