Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 为什么TBitBtn中包含的标志符号如此丑陋和过时?_Delphi - Fatal编程技术网

Delphi 为什么TBitBtn中包含的标志符号如此丑陋和过时?

Delphi 为什么TBitBtn中包含的标志符号如此丑陋和过时?,delphi,Delphi,即使是Delphi 2010,与TBitBtn相关的标志符号也不规则且“丑陋”。它们保留下来是否有向后兼容性的原因?Embarcadero是否包含更新的png替换,我可以使用这些替换来代替这些普通图示符 也许只有我一个人,但我很想看到Embarcadero邀请(或雇佣)平面设计师来改进这些图标 (为了让每个阅读此线程的人都了解全局:TBitBtn归结为本机Win32按钮控件,就像TButton一样,但它有一些附加属性。其中之一是在标题旁边显示图标的简单方式。另一种是种类,可以是bkYe>s,bk

即使是Delphi 2010,与TBitBtn相关的标志符号也不规则且“丑陋”。它们保留下来是否有向后兼容性的原因?Embarcadero是否包含更新的png替换,我可以使用这些替换来代替这些普通图示符

也许只有我一个人,但我很想看到Embarcadero邀请(或雇佣)平面设计师来改进这些图标

(为了让每个阅读此线程的人都了解全局:
TBitBtn
归结为本机Win32
按钮
控件,就像
TButton
一样,但它有一些附加属性。其中之一是在标题旁边显示图标的简单方式。另一种是
种类
,可以是
bkYe>s
bkNo
等,并预设按钮的标题和图示符。上面显示了标准图示符,实际上,它们是旧的。)

更新

在感受了这个控件之后,再看看VCL源代码,我发现这个控件实际上是在Delphi中实现的,也就是说,所有的绘图都是手动完成的(当然是使用
UxThemes
)如果你问我的话,这是一个大调-1,因为如果启用Aero,按钮的行为与普通Windows控件不同。感觉不一样

结束更新

是的,向后兼容性可能是一回事。另一件事是,您可以自由地将“glyph”设置为任何位图。此外,由于这种外观的按钮在Windows环境中是非标准的,因此它在Embarcadero的优先级可能较低

不过,为了给您一些实用信息,在Delphi2009(至少)中,有一些现代PNG图像安装在

C:\Program Files (x86)\Common Files\CodeGear Shared\Images\GlyFX\Icons\PNG\16x16

为什么要使用这些按钮?按钮不需要图标。它们有足够的视觉提示,而不需要uxtheme的出现。也许这就是解释:为什么要更新一些现在已经过时的东西?

是可用的。

哦,我多么希望这个控件会死掉:-/…它是在Delphi 1中引入的,当时它的目标是16位Windows 3.x按钮上的me小标志符号非常新颖,并且“修饰”了UI。(还记得BWCC吗?)我想当时的UI标准要低得多,因为我每次看到应用程序带有这些标志符号时都会畏缩……它们主要用于向后兼容目的


只要坚持使用一个常规的TButton,它是一个本机Windows控件,现在本机支持的样式甚至比TBitBtn还要多(在那些日子里,我们也遇到了元音挑战)。如果您只需要在按钮上包含一个glyph,Delphi/RAD Studio XE包含一整套来自GlyFX的免费、更现代的glyph(http://www.glyfx.com/).

向后兼容到极致

您不希望您的Delphi 1 FishFact应用程序在Delphi XE中看起来有所不同,是吗

请注意,您可以使用最新的Delphi版本获得一组全新的图标。
在Windows XP上,这些文件位于
C:\Program Files\Common Files\CodeGear Shared\Images\GlyFX


--jeroen

我也不明白为什么他们仍然不支持所有组件的PNG(和其他图像类型)。

我个人希望Embarcadero开始使用32bpp的alpha标志符号(10年来一直如此!)在bds中他们自己的菜单上。如果他们这样做了,那么他们可能会被移动,以删除菜单上标志符号的严重破坏的灰显算法,并用ImageList_DrawParams.fState=ILS_SATURATE.+1.我同意。整个GUI设计看起来像Windows 3.1。@Andreas啊,Windows 3.1…..您是否错过了启动程序你的应用程序来自Program Manager?不,我不这么认为!!按钮不需要图标?即使是Microsoft Design Guide Limes也允许图标“当它是命令的标准符号或帮助用户可视化命令结果时”。看。当然应该使用好的图标…@Idsandon Glyphs on on on OK,Cancel,Close,All,No?真的吗?今天哪些主流应用会这样做?至于Ignore,这是一个非常奇怪的glyph-你愿意提供一个在某种程度上是标准的图标吗?Glyphs是用于工具按钮,命令按钮不需要它们。这只是我的观点!!!哦,上帝:“这是一个主要的-1。。。"。我这么做的时间太长了……这些控件是几十年前创建的,当时最小化窗口句柄以节省资源更为重要。@Allen你对菜单上的图示符变灰算法有什么看法,以及我上面评论的32bpp alpha混合图像有多差?我意识到我问这些问题有点厚颜无耻你知道,但我想我应该试试看,也许我能引起你的注意!!TBitBtn被否决了?晴天霹雳。以前从未听说过。德尔福的帮助当然也不受欢迎。我说过它被否决了吗?等一下,让我重读我写的东西…不,没有提到否决。我只是表达了一个观点。@David,我会建议的st建议您确保输入QC()作为建议。有时在我们保持向后兼容性的热情中,会发生类似的事情。即使如此,我们一直在努力确保每个版本都尽可能多地解决类似的问题。@我可以提供帮助。特别是目前实施的VistaDraw方法中存在一个重大缺陷。