摘要: 我觉得叫 "皮肤" 不如叫 "样式" 或 "风格", 因为它可以包含和动作关联的动画.在 FMX 下, 控件可以任意绘制, 各部件个性化的属性可以统一保存成一个 *.style 文件.XE2 在 "...\Program Files\Embarcadero\RAD Studio\9.0\Redist\styles\Fmx\" 下提供了如下样式文件:Air.StyleAmakrits.StyleAquaGraphite.styleBlend.Styledark.styleFMX.Platform.iOS.styleF 阅读全文
posted @ 2013-09-30 10:31 独自等待√ 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 参考: 和 FMX 相关的类(表)TFmxObjectIFreeNotificationTAnimationTBitmapAnimationTBitmapListAnimationTColorAnimationTColorKeyAnimationTFloatAnimationTFloatKeyAnimationTGradientAnimationTPathAnimationTRectAnimationTBitmapObjectTBrushObjectTCommonDialogTOpenDialogTSaveDialogTPageSetupDialogTPrintDialogTPrinterSe 阅读全文
posted @ 2013-09-30 10:30 独自等待√ 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 一个小小的 TLang 类, 实现多语言切换, 挺好的. 它的工作思路是:1、首先通过 AddLang('语言代码') 添加语言类别, 如: AddLang('en')、AddLang('cn').2、每个语言代码对应一个 TStrings 列表, 获取方式如: LangStr['en']、LangStr['cn'].3、可以手动填充这些数据、可以通过 LoadFromFile() 方法载入之前 SaveToFile() 的数据(*.lng)、还可以在设计时提供的界面中操作这些数据.4、切换时修改 Lang 属性即 阅读全文
posted @ 2013-09-30 10:29 独自等待√ 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 刚打开 XE2 时, 就从 Tool Palette 窗口的 Effects 组中发现洋洋洒洒的六十多个特效...每个特效分别对应一个类, 分别来自 FMX.Effects 和 FMX.Filter.Effects 单元.FMX.Effects 中的特效属于附加特效, FMX.Filter.Effects 中的特效只是某种滤镜效果; 它们都是滤镜的一种快捷应用.每个特效有不同的参数; 因都是直接或间接地继承与 FMX.Types 中的 TEffect, 也都拥有 Trigger、Enabled、GetDisablePaint 等功能.测试: 在窗体上放一个 TPanel{ 为 Panel1 设 阅读全文
posted @ 2013-09-30 10:28 独自等待√ 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 窗体上需要 TImage、TOpenDialog 和六个按钮.unit Unit1;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects;type TForm1 = class(TForm) Image1: TImage; OpenDialog1: TOpenDialog; Button1: TButton; Button2: TBu... 阅读全文
posted @ 2013-09-30 10:27 独自等待√ 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 滤镜类的继承关系:TObject -> TPersistent -> TFilter -> TShaderFilter -> { 具体的滤镜类 }//下面例子首先会用到 FMX.Filter 单元的四个公用方法:procedure FillCategory(AList: TStrings);procedure FillFiltersInCategory(const Category: string; AList: TStrings);function FilterByName(const AName: string): TFilter;function FilterCl 阅读全文
posted @ 2013-09-30 10:25 独自等待√ 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 相关单元:FMX.FilterFMX.FilterCatBlurFMX.FilterCatGeometryFMX.FilterCatTransitionFMX_FilterCatColorFMX_FilterCatColorAdjustFMX_FilterCatCompositeFMX_FilterCatGeneratorFMX_FilterCatStyleFMX_FilterCatTilesFMX.FilterCatDistortionFM 提供了 10 个类别的滤镜:{ 分类名称 实现单元 } Blur //FMX.FilterCatBlur Geometry //FMX... 阅读全文
posted @ 2013-09-30 10:24 独自等待√ 阅读(451) 评论(0) 推荐(0) 编辑
摘要: TAnimation 类的主要成员:protected function NormalizedTime: Single; // procedure ProcessAnimation; virtual; //其子类们主要通过覆盖此方法来实现不同的动画 procedure Loaded; override; //public procedure Start; virtual; //播放 procedure Stop; virtual; //停止 procedure StopAtCurrent; virtual; //停止在当前帧; 和 Pause 属性不同... 阅读全文
posted @ 2013-09-30 10:19 独自等待√ 阅读(643) 评论(0) 推荐(1) 编辑
摘要: 在 HD 窗体上添加一个 TAniIndicator, 修改其 Enabled 属性为 True, 动画完成了.这是最简单的动画相关的控件了, 只有两个值得注意的属性:Enabled: Boolean; //Style: TAniIndicatorStyle; //TAniIndicatorStyle = (aiLinear, aiCircular);{例}AniIndicator1.Style := TAniIndicatorStyle.aiCircular;它是怎么动起来的? 追源码, 发现它有一个 FAni: TFloatAnimation; 内部变量.再就追出 TFloatAn... 阅读全文
posted @ 2013-09-30 10:11 独自等待√ 阅读(1768) 评论(0) 推荐(1) 编辑
摘要: RotationAngle、RotationCenter、Opacity 属性继承自 TControl(FMX.Types), 这些新属性成了控件的基本功能.先在 HD 窗体上添加 TRectangle 和两个按钮...procedure TForm1.FormCreate(Sender: TObject);begin Rectangle1.Width := 100; Rectangle1.Height := 100; Rectangle1.Fill.Color := claYellow; Rectangle1.Stroke.Color := claRed; {居中; 喜欢这种带枚举名的赋值方 阅读全文
posted @ 2013-09-30 10:10 独自等待√ 阅读(600) 评论(0) 推荐(0) 编辑