在C++Builder中动态创建控件并处理添加事件处理

原创 2003年09月17日 08:52:00


主页:http://www.maxss.net
邮件:maxchou@163.com


  当开发类似解释程序或实现可视化操作功能等一类的应用程序时,都需要动态地创建控件(对象),而且还要为这些控件添加适当的事件处理程序,下面将介绍在C++Builder中如何实现基本的实现框架。

动态创建控件的一般过程:
  TButton *btn = new TButton(this);
  btn->Caption = "Button1";
  btn->Parent = this;
  btn->Show();

下面结合一个动态生成菜单的例子来实践如何动态创建控件并处理添加事件处理。

  先编写一个函数用向一个已存在的菜单对象中插入菜单项:
  void __fastcall TForm1::AddContextMenuItem(TPopupMenu *pMenu,
    AnsiString caption, unsigned int tag, TNotifyEvent notifyEvent)

  参数:
  pMenu: 已存在的TPopupMenu对象指针
  caption: 菜单项的标题
  tag: 菜单项的tag值,用于标识不同的TMenuItem对象
  notifyEvent: 该菜单项的事件处理函数

函数实现:

然后编写调用AddContextMenuItem(...)的函数CreateContextMenu(),定义如下:

FContextMenu是TForm1的成员变量,UpdateContextMenuItem()是用于在FContextMenu的Popup事件中更新菜单项。

MenuItemClick与NullNotifyEvent都是TForm1中成员函数,是动态创建的控件的事件处理函数,格式为:
void __fastcall TForm1::MenuItemClick(TObject *Sender)
void __fastcall TForm1::NullNotifyEvent(TObject *Sender)

  上面是我自己的一点心得,希望可以与大学继续交流程序设计的经验。


c++builder 动态创建控件及销毁

创建控件: 其实创建控件相对简单。。。  直接生成需要数量的控件实例即可。  for(int i=0;i...
  • wangjijun2010
  • wangjijun2010
  • 2012年02月09日 16:38
  • 1023

在C++Builder中动态创建控件

当开发类似解释程序或实现可视化操作功能等一类的应用程序时,都需要动态地创建控件(对象),而且还要为这些控件添加适当的事件处理程序,下面将介绍在C++Builder中如何实现基本的实现框架。动态创建控件...
  • sding
  • sding
  • 2009年03月13日 14:18
  • 6217

C++Builder 动态生成定时器,创建定时器管理类

定时器是做客户端时常用的一类控件,只需要设置定时时间,开启定时器,然后创建定时事件响应函数,就能定时执行特定的功能,用起来很方便。当时当工程比较大,定时器比较多时,界面看起来就会比较混乱,当定时器名字...
  • yeflx
  • yeflx
  • 2016年12月16日 14:44
  • 430

VBA:為動態生成的控件添加事件

1.聲明全局變量(不一定全局,但必須要讓第二、三步能讀取到)     Dim WithEvents mycmd  As CommandButton2.controls.add的時候順便把上一步的變量指...
  • lizarbhc
  • lizarbhc
  • 2007年08月01日 14:33
  • 3758

C++ Builder 实现动态生成窗口、控件,以及处理控件事件

以下代码出自http://blog.csdn.net/hellogv/,引用请注明出处!  废话就不多说,直接开始本文的重点 //-----------------------------------...
  • hellogv
  • hellogv
  • 2007年06月09日 15:47
  • 5207

iOS开发学习笔记 -- (二)动态添加控件和事件处理

刚开始学iOS开发的时候,经常要跟interface builder打交道,乍一看拖控件是挺方便的,跟以前做C#开发类似,但是Xcode比较恶心的一点是,拖完控件之后,还得手动地在Connection...
  • inte_sleeper
  • inte_sleeper
  • 2013年03月04日 19:04
  • 4228

MFC动态创建控件并响应事件代码实现过程

MFC动态创建控件以及响应动态创建的控件的事件的实现方法如下。 1.创建对象     用new进行动态创建一个对象。然后调用Create函数创建窗口,在函数的父窗口参数中传入this或者用AfxG...
  • Qsir
  • Qsir
  • 2017年06月07日 13:23
  • 717

PB9.0动态生成控件

在做毕业设计的时候,遇到了用复选框来显示数据库中的信息,但是数量不能确定。因此,需要减低程序显示时和数据库的耦合度,让程序自己可以根据数据库的记录的信息数量变化自动适应。基于该需求用到了动态生成控件。...
  • zhuojiajin
  • zhuojiajin
  • 2014年02月28日 14:07
  • 4745

C++ Builder 实现动态生成窗口、控件,以及处理控件事件(转载)

由于工作需要,应项目需要改用VC,以后可能很少使用BCB了,但还是把它贴吧,  以下代码出自http://blog.csdn.net/hellogv/,引用请注明出处!  废话就不多说,直接开始本文的...
  • GuiH168
  • GuiH168
  • 2011年04月16日 15:52
  • 2240

iPhone开发之动态创建控件(纯代码创建控件)

1、程序的加载过程: (1)当要显示一个界面的时候,首先创建这个界面对应的控制器。 (2)控制器创建好以后,接着就创建控制器所管理的那个View。 (3)当View创建好以后就开始执行viewDidL...
  • u013087513
  • u013087513
  • 2015年08月30日 15:17
  • 945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在C++Builder中动态创建控件并处理添加事件处理
举报原因:
原因补充:

(最多只允许输入30个字)