做手机 APP 的话,按钮最好是用 TSpeedButton。最常见的用法就是一个界面最顶上左边那个向左的箭头按钮 -- 退出这个界面。
默认的办法是设置这个 TSpeedButton 的 StyleLookup,里面有很多默认的图标,包括向左的箭头。
然后,这个 APP 在安卓下,就是安卓的默认图标;在 iOS 下,就是 iOS 的默认图标。在 Windows 下,它显示 Windows 的默认图标。
在安卓下,这个图标的颜色是深灰色。
如果把这个界面顶部的横条的颜色改为深色,则需要修改这个图标的颜色为浅色。怎么办?
按照 FireMonkey 的标准做法,是自己去定制修改 Style 文件。但是整个 Style 修改一遍,有点麻烦。
不去定制 Style,简单办法有 2 种:
A. 自己做图标图片:
1. 自己做一个图片文件,PNG 格式。这个图片就是我们想要的图标。
2. 拖一个 TImage 到界面上。给这个 Image 加载上述图片。设置这个 Image.StyleName 为 'abcd'。
3. 此工程中,任何一个 SpeedButton,不管在哪个 Frame 还是 Form 里面,设置它的 StyleLookup 为 abcd,这个 SppedButton 的图标就显示为这个 Image 的图标了。
4. 注意:运行期,如果放了图标图片的 Image 所在地 Form 还没被创建,则需要显示这个图标的 SpeedButton 就会无法显示这个图标。
B. 用代码修改图标颜色:
1. 如果你要的图标,默认的 StyleLookup 里面有(设计期下拉 StyleLookup 属性),下拉选择一个图标;
2. SpeedButton2.IconTintColor := $FFFFFFFF; 可以将图标的颜色修改为白色。
-------------------------
SpeedButton 本身的颜色如何修改?
SpeedButton.TintColor := $FF000000; 这样的代码,无法修改其颜色。看起来就是 SpeedButton 对于 TintColor 不支持?或者是有其它什么需要设置才支持?
把一个 SpeedButton 放到一个 ToolBar 上面。然后: ToolBar1.TintColor := $FF000000; 则整个 SpeedButton 的颜色就跟随这个 ToolBar 改变了。