FireMonkey Style之TLabel篇
来源:互联网 发布:手机淘宝店铺店招 编辑:程序博客网 时间:2024/06/05 20:20
FireMonkey Style之TLabel篇
(文章中使用的为Delphi XE6,所有不同的版本属性上会有些变化,基本是从XE6开始的)
TLabel作为UI中使用非常多的一个控件,相对也比较简单,下面我来讲解下它的样式结构,首先从控件栏中拖一个TLabel组件到设计窗口,选中组件后
右键选择 Edit Custom Style... 项进入TLabel的自定义样式设计,如图:
可见TLabel的样式结构非常的简单,由一个TLayout和TText构成, 每个组件都有一个非常重要的属性StyleName这个相当于平时的Name,必要层需要指定一个有意义的名称,这样方便之后自己调用同时可以绑定控件的属性,例如 TLable.Text,如果指定TText的StyleName为text则就会与控件的Text属性进行绑定,不需要再使用额外的代码去设置数据
这里我们指定第一个TLayout样式名为 labelstyle_custom 前缀使用 控件类名(去掉T) + style这样一来清楚知道是哪个样式的,二来可以自动列表到对应组件的StyleLookup属性中。
前面介绍了基本的一些,下面我们来自定义一个样式吧, 功能上主要是将TLabel的背景显示为蓝色, 其它不改变。
我们先要从右边的控件栏中拉一个TLayout布局组件到左边的 Structure窗口下面的 Stylecontainer下, 这里需要注意下,不是平时直接拖到设计界面,这样是无效的,需要拖到要Structure窗口下自己想要置于的组件下。
这里其它并不限定一定要一个Tlayout, TRectangle也是可以的,基本上看需求了,这里使用TLayout作为样式的主体部分, 并设置刚刚这个组件的StyleName为labelstyle_custom
接下来我们需要一个可更改背景颜的组件,这里我选择使用TRectangle, 将TRectangle从组件栏拉到 labelstyle_custom下, 并更改以下几个属性
1)、 StyleName 为 background
2)、 Align 为 Contents (XE6以下的为 alContents )
3)、 HitTest为False (取消HitTest是因为这样会阻止原组件接收相关消息,特别情况下不设置也行的,具体取决于需求)
4)、Fill -> Color 为Blue (需要Fill.Kind属性为Solid)
5)、Stroke -> Kind为 None
再接下为了让Label的Text属性不失效,我们得再拉一个TText组件到background下设置以下几个属性:
1)、 StyleName 为 text (名称必须与label的Text相符才能绑定上)
2)、 Align 为 Client
3)、 HitTest为False
4)、 TextSettings.FontColor 为 White
这样一来,我们就已经建立好一个颜色背景的样式
退出样式编辑, 返回到界面设计将Label的StyleLookup选择为刚刚定义的labelstyle_custom样式名
选择后,设计界面的label样式已经被改为我们刚刚定义的了,是不是很容易
PS: 样式是很自由的,不限于某个特定的控件,你也可以把一个label的样式变为一个按钮或者一个ListBoxItem或者其它的
Unit1.pas
unit Unit1;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls;type TForm1 = class(TForm) lbl1: TLabel; stylbk1: TStyleBook; private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.fmx}end.
Unit1.fmx------------------------------------------------------------------------------------
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 480 ClientWidth = 640 StyleBook = stylbk1 FormFactor.Width = 320 FormFactor.Height = 480 FormFactor.Devices = [Desktop, iPhone, iPad] DesignerMobile = False DesignerWidth = 0 DesignerHeight = 0 DesignerDeviceName = '' DesignerOrientation = 0 DesignerOSVersion = '' object lbl1: TLabel Height = 49.000000000000000000 Position.X = 96.000000000000000000 Position.Y = 96.000000000000000000 StyleLookup = 'labelstyle_custom' TextSettings.WordWrap = False Text = 'FireMonkey Style ying32' Width = 329.000000000000000000 end object stylbk1: TStyleBook ResourcesBin = { 464D585F5354594C4520322E350106116C6162656C7374796C655F637573746F 6D038001005450463007544C61796F757400095374796C654E616D6506116C61 62656C7374796C655F637573746F6D064865696768740500000000000000C804 400A506F736974696F6E2E5805000000000000008808400A506F736974696F6E 2E5905000000000000009707400557696474680500000000000000C804400854 61624F726465720200000A5452656374616E676C6500095374796C654E616D65 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C 6C2E436F6C6F720707636C61426C7565064865696768740500000000000000C8 04400748697454657374080B5374726F6B652E4B696E6407044E6F6E65055769 6474680500000000000000C804400005545465787400095374796C654E616D65 06047465787405416C69676E0706436C69656E74064865696768740500000000 000000C80440074869745465737408165465787453657474696E67732E466F6E 74436F6C6F720708636C6157686974650557696474680500000000000000C804 4000000000} endend
- FireMonkey Style之TLabel篇
- FireMonkey Style学习前言
- VCL组件之TLabel、TStaticText和TLabeledEdit
- FireMonkey 之 360safe界面
- Delphi XE2 之 FireMonkey 入门(5) - TAlphaColor
- Delphi XE2 之 FireMonkey 入门(1)
- Delphi XE2 之 FireMonkey 入门(2)
- Delphi XE2 之 FireMonkey 入门(7) - TText 与 TFont
- Delphi XE2 之 FireMonkey 入门(20) - TStyleBook(皮肤、样式相关)
- 电子书下载:Delphi XE 2 之FireMonkey 入门学习笔记
- 让TLabel背景变无色
- Android 之style
- WPF 之 样式 Style
- android 之style
- Style对象之二
- Android 之 style
- javascript之Style对象
- 江南style之---黄山
- 特征选择方法之信息增益
- 【译转】一个指南的CSS RGBA颜色
- Rapid PGA size increase
- 第十三周OJ项目定义好一个有10个元素的数组,先输入9个呈升序的数作为前9个元素,再输入一个数,要求按原来排序的规律将它插入数组中。
- AlarmManager类的应用(实现闹钟功能)
- FireMonkey Style之TLabel篇
- 10个经典的C语言面试基础算法及代码
- Lua脚本语言——基本语法(一)
- Android打包失败Proguard returned with error code 1. See console
- 求二叉树第K层的叶子节点的个数(假设根节点是第一层)
- 字符串-05. 字符串循环左移(20)
- java eclipse 注释代码快捷键 取消代码注释快捷键
- Oracle建立DBLINK的详细步骤记录
- 函数的回调