高手帮忙看看这是怎么一回事
在窗口创建事件中有下面这段代码
BitBtnX = new TBitBtn(this);
BitBtnX->Parent = ScrollBox1;
BitBtnX->Width = 36 ;
BitBtnX->Height = 36 ;
BitBtnX->Left = 5;
BitBtnX->Top = dwtop;
AnsiString str1 = "name1";
BitBtnX->Name = str1;
dwtop += 2 + 36;
BitBtnX->OnClick = CustomClick;
BitBtnX = new TBitBtn(this);
BitBtnX->Parent = ScrollBox1;
BitBtnX->Width = 36 ;
BitBtnX->Height = 36 ;
BitBtnX->Left = 5;
BitBtnX->Top = dwtop;
AnsiString str2 = "name2";
BitBtnX->Name = str2;
dwtop += 2 + 36;
BitBtnX->OnClick = CustomClick;
void __fastcall TForm2::CustomClick(TObject *Sender)
{
AnsiString str1 = ((TBitBtn*)Sender)->Name ;
::MessageBox(NULL,str1.c_str(),"",NULL );
}
我想达到的效果是。这段代码创建两个按钮,单击按钮能弹出按钮的name。实际上,单击两个按钮弹出的都是name2字符串,也就是按钮2的名称。创建两个按钮的时候明明给两个按钮给了不同的名称(相同名称也创建不了啊),但是分别单击两个按钮,却都弹出后创建的按钮的名称,百思不得其解。
谢谢大家帮忙。
[解决办法]
我用你的代码试了下,弹出的分别是name1和name2的呀????????