随笔 - 809  文章 - 0 评论 - 144 阅读 - 770万

 

 

今天在做DELPHI的时候,在第二个窗口中加了一个BitBtn按钮,为了减少枯燥的图标,就给它设置了Kind属性为bkOK,但在运行时这个窗口却在这个按钮点击时被关闭了,本还以为是代码的问题,
可前前后后的找了大半天也没有找到,郁闷啊,还以为自己编错了,就重新加个按钮把代码加上去,运行一下是对的,窗口不关了,想想真的不通啊,没错啊,粘贴复制也没什么啊。 做好之后,看看按钮还是丑的,于是还是给它设置了Kind属性为bkOK,这次一运行就出现了上次的那个错误,看来是这个按钮设置的问题了,就有心留意了一下这个BitBtn按钮,
从中看到一个modalresult的属性是mrOK的,看来就这个,于是看了它的其它选项,设了一个mrNone的,再运行就OK了。 看来半路出家不行啊,当初没有认真看看控件的参数,才有今天的错误。

 

俺是采鸟,有个疑惑那就是:BITBTN与 button 与speedbutton的区别,我觉得没什么分别啊?大家怎么认为的?

 

复制代码
BitButton可以在按钮上面放图片,她是从Button继承的,她和Button都是有窗口局柄的,是独立的窗口,可以聚焦。
SPeedButton是从TGraphicControl继承的,没有窗口局柄,也就说她不是一个真正的窗口,不能被聚焦 

BITBTN 可以方便的装载图表  SpeedButton 不能获得焦点 。。。。。 

BITBTN与 button 基本上没有区别,只是前者可以显示图形,后者不可以;
而speedbutton主要使用在菜单栏下面的工具栏按钮。 

BITBTN:可以加图,有焦点
button:有焦点。
speedbutton:可以加图,没有焦点。 

TButton是普通标准按钮。
TBitBtn是可以显示位图的按钮,Delphi已经自带了几种常用的位图按钮了。TSpeedButton一般是在工具栏上的那些按钮。

大概是这样吧,我也是初学,说错了可别怪我。 

以下是他们的继承关系
TControl-->TwinControl-->TbuttonControl-->Tbutton-->TBitBtn
TControl-->TGraphicContron-->TSpeedButton

怎么样,很明白了吧.

你可以这么理解。
TButton是普通标准按钮。他的功能你自己设定。
TBitBtn是可以在按钮上显示位图或者图标的按钮。他有自己的默认功能,你可以选,当然也可以自己写,就像设定TButton。
TSpeedButton是菜单上的快捷按钮,主要用来对应下拉菜单上的功能。

呵呵,俺也来说几句吧:
一、TBitBtn是TButton的派生类。增加的属性有Glyph、Kind、Layout、Margin、NumGlyphs、Spacing、Style。这些属性都影响按钮中的图象显示。
其中,Kind属性还影响按钮的行为。例如,当Form1中的BitBtn1的Kind设置为bkClose时,按下该按钮将自动调用Form1.Close。因此,除了增加图象显示的特性之外,
增加按钮行为也是TBitBtn于TButton的重要区别。 二、TSpeedButton是TGraphicControl的派生类,不具有TWinControl的重要特性:控制焦点。也就是说,你无法通过Tab键将焦点移动到一个TSpeedButton上,
更不能试图按下空格键或者回车键来利用Windows标准输入方式“按”此类按钮。这就是TSpeedButton与TButton(包括TBitBtn)的重要区别。另外,
利用TSpeedButton可以轻松制作透明按钮(Flat属性配合Transparent属性),这对实现比较酷的另类应用来说很有意义。 因此,用TBitBtn要优于用TButton。而用TBitBtn还是用TSpeedButton,主要区别就是考虑按钮的附加行为、焦点有无、按钮外观。
复制代码

 

 2013.05.21-----我总结切图:(这样窗口就不会自动关闭了)

 

 

==================================2015-08-03补充说明,没有上面的方法好,尽量用上面的方法=======================

 

 

 

 

 

看下上面的ModalResult,然后再FormCloseQuery事件中判断下,由于这种方案需要通过代码来实现,没有上面的方案好,但是理解下原理吧:

 

posted on   del88  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示