社区
C++ Builder
帖子详情
急:可否动态创建一个已经在窗体上存在的控件,包括此控件的属性方法事件
大鸟的小天空
2003-11-11 10:55:48
动态创建的控件怎么来共用已经存在的控件的方法事件
...全文
129
14
打赏
收藏
急:可否动态创建一个已经在窗体上存在的控件,包括此控件的属性方法事件
动态创建的控件怎么来共用已经存在的控件的方法事件
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Veeve
2003-11-11
打赏
举报
回复
还是我的方法简单、安全
vargent77
2003-11-11
打赏
举报
回复
assign()主要是把assign(内容)的内容赋给原来的。特别是,你要保护原来创建的指针时,要保留!不然delete的时候有问题
Veeve
2003-11-11
打赏
举报
回复
assign()方法也许也可以的,不过我没用过。
jiangchun_xn
2003-11-11
打赏
举报
回复
assign
大鸟的小天空
2003-11-11
打赏
举报
回复
哦,必须这样一个一个赋值吗?谢谢.^_^
Veeve
2003-11-11
打赏
举报
回复
TComboBox *cb2 = new TComboBox(this);
cb2->Parent = cb1->Parent; //cb1为窗体上已经存在的TComboBox控件
cb2->Left = cb1->Left;
cb2->Top = cb1->Top;
cb2->Width = cb1->Width;
cb2->Height = cb1->Height;
for (int i=0;i<cb1->Items->Count;i++)
{
cb2->Items->Add(cb1->Items->Strings[i]);
}
//其他属性同样的方法赋值
cb2->OnClick = cb1->OnClick;
//其他事件同样的方法赋值
Veeve
2003-11-11
打赏
举报
回复
TButton *btn2 = new TButton(this);
btn2->Parent = btn1->Parent; //btn1为窗体上已经存在的TButton控件
btn2->Left = btn1->Left;
btn2->Top = btn1->Top;
btn2->Width = btn1->Width;
btn2->Height = btn1->Height;
btn2->OnClick = btn1->OnClick;
大鸟的小天空
2003-11-11
打赏
举报
回复
谢过楼上的兄弟,不过我想要的是创建一个已经存在的控件,比如TComBoBox,其中已经有Item了,创建一个跟已经存在的一摸一样的东东,就像copy了一份一样.包括事件属性等信息
jEditor
2003-11-11
打赏
举报
回复
以上,有一个按钮oldBtn,它的点击事件是oldBtnClick,新长生的
按钮newBtn,设置Form1为父体,位置左10,上30。
共享按钮oldBtn点击事件是oldBtnClick;
jEditor
2003-11-11
打赏
举报
回复
TButton *newBtn = new TButton(this);
newBtn->Parent = Form1;
newBtn->Left = 10;
newBtn0->Top = 30;
newBtn->OnClick = oldBtnClick;
踏岸寻柳
2003-11-11
打赏
举报
回复
直接指定即可。
需要注意的是,事件句柄的参数要保持一致。
如:
Button1->OnClick = MyClick;
void __fastcall TForm1::MyClick( TObject *Sender )
{
//...
}
yjy1001
2003-11-11
打赏
举报
回复
创建的时候 要把 onclick事件也 赋过去。
btn[i]->OnClick = BtnClick;
yjy1001
2003-11-11
打赏
举报
回复
TButton* btn[10];
for(int i=0;i<8;i++){
btn[i]=new TButton(this);
btn[i]->Parent=this;
btn[i]->Top=20;//可以调整
btn[i]->Left=30*i;//
btn[i]->Tag=i;//设置 不同的tag
}
在 他们共同的 事件中写:
int i,tmpTag=((TButton*)Sender)->Tag;
switch(tmpTag){
case 0:
break;
case 1:break;
case 2:
.........
case 3:
........
case 4:
.....
}
自己往里面添内容 就可以了
yjy1001
2003-11-11
打赏
举报
回复
newBtn->OnClick = oldBtnClick;
只要 在 oldBtnClick;里 通过((TButton*)Sender)->Name 或是->Caption 或是 ->Tag来区分点击的是哪个按钮 就可以了
一般我用tag 来区分,只要在创建 按钮的同时,修改它的tag,就很容易在同一个事件中区分出不同的控件(按钮了)
VB
窗体
动态
创建
控件
及
控件
事件
VB
窗体
动态
创建较少,今天,试着弄一个,专为解答之用。 首先
创建一个
空白
窗体
,调整大小,修改名称,双击
窗体
进入代码编辑界面: Public Class VB解答专用
窗体
Dim 数据列表 As DataGridView Dim 输入框 As TextBox Private Sub VB解答专用
窗体
_Load(sender As Object, e As EventAr...
VB中
动态
创建
控件
创建数据驱动
窗体
所谓数据驱动
窗体
就是根据所请求的数据的不同生成相应的
窗体
。举例来讲,假设你现在有一个数据库,其中有些字段必须根据登录者的身份加以显示,授权级别高的用户可以浏览并修改这些字段的内容;授权级别一般的用户只能浏览这些字段中的数据;授权级别低的用户则不能浏览这些字段中的内容。要做到这一点就得利用VB
动态
添加
控件
的功能。
动态
创建
控件
无论你想要创建何种类型的数据驱动
窗体
,你必须知道如何在运行时
在DELPHI中
动态
创建
控件
以及
控件
的
事件
在DELPHI中我们经常要
动态
的创建
控件
以及
控件
的
事件
。例如,我们可能想根据程序需要
动态
的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作。这一般需要需要三步: 生成一个制定组件类的实例 为这个实例付初值 在使用完毕后,释放资源 下面将通过一个例子来演示,例子的功能是
动态
创建一个
Tshape的实例MyShap
8.7 在运行时
动态
创建
控件
1
需要说明的是,
事件
方法
的参数必须符合该
控件
事件
对应的参数,如果不知道怎么写,不妨实际拖拽一个对应
控件
到设计
窗体
看看。1、声明一个需要的
控件
类型变量,如果要在
窗体
其他
方法
中使用该
控件
的
事件
,该变量范围必须是
窗体
级别。要区分具体哪个Button被按下,可以采用一个偷懒的
方法
,向Button的tag
属性
中写入对应的索引号。同实际添加的
控件
事件
,可以通过参数sender获得这个Button(或其他
动态
创建的
控件
)的相关
属性
。3、设置各个
控件
的
属性
,不是每个
属性
都必须设置,会使用它的默认
属性
值;
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章