如何为动态生成的控件添加事件?

BCBChina 2004-11-30 04:04:36
比如给按钮加加OnClick事件
...全文
123 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2004-11-30
  • 打赏
  • 举报
回复
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TButton *Button = new TButton(this);

Button->OnClick = ButtonClick;
Button->Left = 100;
Button->Top = 100;
Button->Parent = Form1;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonClick(TObject *Sender)
{
Edit1->Text = "click";
}
niiv 2004-11-30
  • 打赏
  • 举报
回复
TButton *Button1 = new TButton(this);
Button1->Parent = this;
Button1->OnClick = ClickFunction;

ClickFunction是一个你自己定义的函数,注意函数声明要和系统产生的函数头一样。
这样,当你按下Button1时就会去执行ClickFunction;
samchoy 2004-11-30
  • 打赏
  • 举报
回复
Button->OnClick = ButtonOnClick;

另定义一个函数:
void __fastcall TForm1::ButtonOnClick(TObject *Sender)
ccrun.com 2004-11-30
  • 打赏
  • 举报
回复
.h:
private: // User declarations
void __fastcall BtnClick(TObject *Sender);


.cpp file:
void __fastcall TForm1::BtnClick(TObject *Sender)
{
ShowMessage("click!");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TButton *btn = new TButton(this);
btn->Parent = this;
btn->Left = 10;
btn->Top = 10;
btn->Caption = "新按钮";
btn->OnClick = BtnClick; // 注意这里
btn->Show();
}
铖邑 2004-11-30
  • 打赏
  • 举报
回复
void __fastcall TForm1::ButtonClick(TObject *Sender)
{
...
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
TButton *Button = new TButton(this);
Button->OnClick = ButtonClick;
}
version :4.0 1、将生成的代码和事件用两个文件实现。 2、修改了部分Bug; 3、颜色设置做了部分改进; 4、内部集成了VC的编译器,和模拟器,生成C文件后可以直接在uCGUIBuilder中编译,运行模拟器了 5、添加代码自动完成功能; 6、添加画线功能。 version : 3.1.0.0 1、修改了选择不同窗体属性窗口不更新的BUG; 2、修改了只能打开一个ucGUIBuilder的功能,现在可以同时启动多个; 3、修复了拖放非ucfrm引起软件错误的Bug; 4、添加控件ID自动增加功能; 5、添加控件ID检查功能,控件ID有重复时会有警告; 6、添加了用户自定义字体功能; 7、支持中英文切换(但功能不够完善); 8、支持自动检查更新; 9、修改了不能保存用户自定义ID的BUG; version : 3.0.0.0 重写了部分内核,运行更稳定; 支持窗体设计器的复制、粘贴、剪切、删除、撤销、等基本操作; 支持多控件,对齐、公共属性修改等基本操作; 支持将.ucfrm文件与ucGUIBuilder关联功能; 支持控件自定义ID; 添加了窗体预览功能; 添加了对控件事件的支持; 添加了在线检查更新功能; 等…… version : 2.1.0.5 优化了控件库; 修复了一些Bug; 代码生成窗口中添加了C语言语法高亮显示功能; C文件模板做了部分修改(C文件模板大家可以随意修改为自己喜欢的格式(..\Template\Template.c文件) 但是要保证$$$GUI_WIDGET_CREATE_INFO$$$ $$$Defination$$$ $$$InitDialog$$$ 三个字符串位置不变) 支持设计的窗体保存为文件,并可以打开; 对所有控件属性添加了Description(在属性窗口最下面显示); 窗体布局可以保存,可以自定义为自己喜欢的窗体布局; 修改了部分功能; version : 2.0.0.5 优化了控件库; 修复了一些Bug; 可以生成完整的C文件(包括 资源表,初始化代码等); 修改了部分功能; version : 1.0.0.0 功能很不完善; 还有好多BUG; 目前只能生成资源表; 暂时不能生成其他代码; 大家有什么好的建议可以发送Email 到: ucguibuilder@163.com

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧