社区
C++ Builder
帖子详情
在控件的事件中,不直接通过控件名,如何修改控件的属性? (高难道,100分相送)
qiwei
2001-07-13 02:29:02
在控件的事件中,不直接通过控件名,如何修改控件的属性?
例如:在Edit1的KeyDown消息事理函数中,在程序中不出现Edit1的控件名,如何
改变Edit1的Text属性?
...全文
157
15
打赏
收藏
在控件的事件中,不直接通过控件名,如何修改控件的属性? (高难道,100分相送)
在控件的事件中,不直接通过控件名,如何修改控件的属性? 例如:在Edit1的KeyDown消息事理函数中,在程序中不出现Edit1的控件名,如何 改变Edit1的Text属性?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiwei
2001-07-13
打赏
举报
回复
To: HEROIN(HEROIN) 你的方法是最好,谢谢你!
谢谢大家的帮忙,到这儿为止我的问题已解决了,给大家意思一下吧!
Yonee
2001-07-13
打赏
举报
回复
不早点说,害得我差点走火入魔!
我想可以试试用ActionList控件!
gqxs
2001-07-13
打赏
举报
回复
up
HEROIN
2001-07-13
打赏
举报
回复
把所有Edit的OnKeyDown事件设为同一函数即可.函数中加入
((TEdit*)Sender)->Left=0;
qiwei
2001-07-13
打赏
举报
回复
To: xrbeck(xiaozi) 谢谢你的方法,我会考虑的,但我有一百多个控件,Switch语句写
的也真让我难受,如果不是万不得已,我可能会用的了!
这个方法还是有点让人难以接受,光处理这个switch就使用了一千多条语句,不知哪位还有高招吗?
xrbeck
2001-07-13
打赏
举报
回复
那或许可以根据TAG来区别。
void __fastcall TForm2::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
TEdit * Des_Edit=dynamic_cast<TEdit *>Sender;
switch(Des_Edit->Tag)
{
case 0:....
case 1:....
}
}
参考一下。。恩。
qiwei
2001-07-13
打赏
举报
回复
To: xrbeck(xiaozi) 我只是随便举了Edit1这个例子,其实并不知道是Edit1,如果知道的
话就不用这么麻烦了!
To: Yonee(戴墨镜的洋葱) 可能我说的不太清楚,我的意思是如果有一百个Edit控件,分别
命名为Edit1...Edit100,不管在哪个Edit控件中按了回车键都
让它的Left属性变为0,总不可能写一百个同样的处理函数吧,
所以我就想在一个事件中处理了,但想知道倒底是哪个Edit按了
才好!
Yonee
2001-07-13
打赏
举报
回复
我想非常简单,不会超过10句!
第一种办法:
使用 SetWindowLong设置WndProc
写
WndProc(HWND hwnd, ……)//不是 WndProc(Message::TMessage &Message)
{
SetWindowText(……)
}
第二种方法:
更简单,速度嘛!如果你有10000个控件我想也不会超过2秒钟!
starsail
2001-07-13
打赏
举报
回复
Sender是TObject类的。好像没有象PB那样的好事,可以轻松用This引用,因为事件处理函数是属于Form这个类的。
xrbeck
2001-07-13
打赏
举报
回复
"在程序中不出现Edit1的控件名,如何改变Edit1的Text属性?"
恩。那你怎么知道要改EDIT1的呢。
或许遍历的方法可以参考一下:
for(int i=0;i<ComponetCount;i++)
{
if(dynamic_cast<TEdit *>(Components[i]))
{
.........
}
}
weenyboy
2001-07-13
打赏
举报
回复
什么意思呢? 不懂
Sender 参数不是对象的实例指针吗?
qiwei
2001-07-13
打赏
举报
回复
这些方法看似容易,但实际编程中比较复杂,如果成批处理这样的控件,那么速度可想而知,不知BCB中是否有什么属性的设置能为它带来福音,不知哪位高手还能提供别的方法吗?
wjzhuang
2001-07-13
打赏
举报
回复
@_@
从wndproc()或者dispatch()处理消息的函数入手?
Yonee
2001-07-13
打赏
举报
回复
还有种方法:使用Findwindow API遍历所有句柄,根据某一属性的值(比如Text的内容),取得句柄,然后根据句柄设置/改变属性!
Yonee
2001-07-13
打赏
举报
回复
截获该控件的消息处理,取它的句柄,根据句柄设置/改变属性!
完全手册:ASP.net Ajax电子教程(1-8章)
1.5.2 ScriptManager
控件
的
属性
1.5.3 ScriptManager
控件
的方法 1.5.4 引入脚本资源 1.5.5 引入Web服务资源 1.5.6 处理AJAX
中
的异常 1.6 局部更新
控件
UpdatePanel 1.6.1 UpdatePanel
控件
概述 ...
完全手册:ASP.net Ajax电子教程(9-15章)
1.5.2 ScriptManager
控件
的
属性
1.5.3 ScriptManager
控件
的方法 1.5.4 引入脚本资源 1.5.5 引入Web服务资源 1.5.6 处理AJAX
中
的异常 1.6 局部更新
控件
UpdatePanel 1.6.1 UpdatePanel
控件
概述 ...
完全手册ASP.NETAjax实用开发详解(1-6)
1.5.2 ScriptManager
控件
的
属性
1.5.3 ScriptManager
控件
的方法 1.5.4 引入脚本资源 1.5.5 引入Web服务资源 1.5.6 处理AJAX
中
的异常 1.6 局部更新
控件
UpdatePanel 1.6.1 UpdatePanel
控件
概述 ...
完全手册ASPNETAjax 实用开发详解(9-11)
1.5.2 ScriptManager
控件
的
属性
1.5.3 ScriptManager
控件
的方法 1.5.4 引入脚本资源 1.5.5 引入Web服务资源 1.5.6 处理AJAX
中
的异常 1.6 局部更新
控件
UpdatePanel 1.6.1 UpdatePanel
控件
概述 ...
完全手册ASP.NETAjax实用开发详解(12-13)
1.5.2 ScriptManager
控件
的
属性
1.5.3 ScriptManager
控件
的方法 1.5.4 引入脚本资源 1.5.5 引入Web服务资源 1.5.6 处理AJAX
中
的异常 1.6 局部更新
控件
UpdatePanel 1.6.1 UpdatePanel
控件
概述 ...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章