分享
 
 
 

Delphi捉妖记之AutoHint

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

为什么用“捉妖”这个词?程序开发中,往往会出现这样那样的错误,他们像妖魔一样藏匿在程序的各个地方,而排除错误的过程就像捉妖一样,记录妖魔的特征,分析他们出现的原因,找到它的老巢清除掉。

本文讲述的是捕捉Delphi中StatusBar控件的AutoHint属性的“妖”的过程。

前一段时间做了一个根据文件内容进行查找的文件查找器。由于文件格式是自己定义的,并且实现的是对文件内容有意义的查找,因此不能仅用系统所提供的函数或者Windows的文件查找来实现。

实现了系统之后,为了让它界面更友好,因此决定加入状态条,提示界面功能,显示当前日期以及时间(如下图)。在查找时对查找过程进行提示,于是在窗体上增加了StatusBar,以便在进行查找时显示“正在搜索…”的字样,提示用户搜索正在进行。而如果只对搜索状态进行显示的话,StatusBar就显得有些单薄了,于是就想到在StatusBar中显示各个按钮、编辑框的说明。

我清楚的记得以前实现过这样的功能,于是找到那个软件。果然如此,当鼠标移动到按钮、编辑框等控件上面的时候,StatusBar中Panes[0]中内容自动地更新为控件的Hint的内容,如下图所示。

图中显示的是鼠标移动到最右方的SpeedButton时的情形,图上左下角显示的“退出系统”字样与当前显示的Hint是一致的。

类似地,我在文件查找器项目中放置一个StatusBar,并设置了其他控件的Hint属性,按下F9运行,但结果很奇怪,StatusBar并不能显示控件的Hint。

我想肯定是程序中对StatusBar的操作在文件查找器中没有写入,于是打开例子程序,仔细查找了与StatusBar有关的代码,但是没有找到任何代码。“见鬼了?”苦思冥想之后,我想到如果要显示Hint的话,一定会有读取Hint的代码,于是又在整个项目中查找所有与Hint相关的代码,“Oh,My God!”,结果一样令人失望。

“怎么会出现这样的事?”我又找来几个编程浪子,向他们寻求帮助,最后我们得到一致的结论:既然StatusBar中显示Hint,那一定有代码操纵Hint与StatusBar,而且这种操作很可能在控件的MouseMove事件中。但经过检查却发现整个例子程序中没有一个处理MouseMove事件,而且有些控件根本就没有MouseMove事件(属性)。

当我正在苦苦搜索可能的其他原因时,一个浪子高喊“找到了!找到了!”,我赶紧中断搜索赶了过去。

“设置一个属性就可以搞定的”,

“什么属性?”,

“AutoHint。你看设置StatusBar的AutoHint属性为True,就可以自动地将控件的Hint显示在Panels[0]上了。”,

我照着他说的试了一下,果然如此。

终于,一个令我痛苦了一个下午的问题终于找到了罪魁祸首。

那个文件查找的界面也拷贝了下来,如下图所示。

这次捉妖的过程很有趣,不同于以前的错误调试,仅仅因为对于控件的属性不够熟悉就浪费了一个下午的时间。而且如果以前自己对这样比较特殊的属性进行记录的话,也许就会完全避免这种情况的出现了,因此我提醒读者们,在遇到比较特殊的属性、方法时,不妨把它们记下来。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有