动态地建立一个按钮,怎样使用它的click事件
小问题,请大侠帮帮忙 问题点数:0、回复次数:8Top
1 楼mopyman(only you c plus plus)回复于 2003-02-03 21:46:44 得分 0
button1->OnClick=your method;Top
2 楼sjd163(sjd163)回复于 2003-02-03 23:38:29 得分 0
upTop
3 楼扬帆(异乡客)回复于 2003-02-04 00:37:12 得分 0
你在构造类的时候可以先把onclick方法重载,然后动态的创建对象,不这样用同一个类创建的对象,消息处理函数都是一个Top
4 楼dszsun(一片清风)回复于 2003-02-04 10:06:44 得分 0
learningTop
5 楼wgh166(涌金水牛)回复于 2003-02-04 18:17:25 得分 0
分给得太少,恕我直言。
private: // User declarations
TCheckBox *SubCheckBox[15];
SubCheckBox[i]=new TCheckBox(this);
SubCheckBox[i]->Caption="....";
SubCheckBox[i]->Tag=i;
SubCheckBox[i]->Width=100;
SubCheckBox[i]->Height=17;
SubCheckBox[i]->Left=8;
SubCheckBox[i]->Top=24 + i * 25;
SubCheckBox[i]->Enabled=true;
SubCheckBox[i]->Visible=true;
SubCheckBox[i]->OnClick=SubChkClick;
SubCheckBox[i]->Parent=SubjectGroupBox;
.................
void __fastcall TNoteForm::SubChkClick(TObject *Sender)
{
TCheckBox* ACheckBox = dynamic_cast<TCheckBox*>(Sender);
if(ACheckBox){
FMComboBox[ACheckBox->Tag]->Enabled=SubCheckBox[ACheckBox->Tag]->Checked;
if(SubCheckBox[ACheckBox->Tag]->Checked){
FMComboBox[ACheckBox->Tag]->ItemIndex=0;
FMComboBox[ACheckBox->Tag]->Text=FMComboBox[ACheckBox->Tag]->Items->Strings[0];
}
}
}
Top
6 楼freeforchina(冰狐)回复于 2003-02-05 01:06:03 得分 0
TCheckBox* ACheckBox = dynamic_cast<TCheckBox*>(Sender);
learned...
Top
7 楼rouqing(*冰雨&双子座奇缘*)回复于 2003-02-05 03:29:50 得分 0
TButton *MyBtn=new TButton(this);
MyBtn->OnClick=......Top
8 楼IceboundRock()回复于 2003-02-05 11:14:28 得分 0
在头文件里面:定义一个
TButton * temp[];
类型的数组
在cpp文件中要动态建立按钮的地方(例如FormCreate):(例如动态产生5个按钮吧)
void __fastcall TConForm::FormCreate(TObject *Sender)
{
for(int i=0;i<5;i++)
{
temp[i]= new TButton(this);
temp[i]->Top=50*i+90;
temp[i]->Left=40;
temp[i]->Parent=ConForm;
temp[i]->Caption=IntToStr(i);
temp[i]->OnClick=BonClick;
}
}
void __fastcall TConForm::BonClick(TObject * Sender)
{
//TODO: Add your source code here
//TMetaClass *se= Sender->ClassType();
AnsiString * ast;
ast=(AnsiString *)Sender->FieldAddress(Caption);
ShowMessage(*ast);
}
Top




