Delphi XE2-FireMonkey 新功能


本文整理自网络,侵删。

 

什么是FireMonkey?

     Embarcadero(英巴卡迪诺)公司正式推出Firemonkey。Firemonkey是一个基于CPU/GPU混合架构的业务应用平台,能够帮助开发人员设计出Windows、Mac和iOS设备上的视觉绚丽的本地应用程序。



  Firemonkey允许开发人员创建具有快速的本地性能、动画和图像效果、企业级的数据连接以及交互式数据可视化的富HD和3D的图形应用程序,并且可以使用亚马逊和Azure云服务。

  Embarcadero公司认为,目前,丰富的用户体验已经在网络娱乐、广告和媒体中占有重要地位。它宣称,Firemonkey是第一款“能够在所有主要平台和设备上创建下一代的、可以满足商业软件的性能、连接及平台要求的富用户体验”的业务平台。

  使用Firemonkey,开发人员可以为Windows、MAC OS X和iOS操作系统编写应用程序,这些应用程序可以在本地进行编译,节省了大量时间和资源。

  此外,Embarcadero称,通过其GPU构建的HD可缩放矢量和3D用户界面、动画和特效,使用Firemonkey创建数据和硬件密集型的应用程序,如科学、金融、医疗、地理信息系统、通信和机械制造方面的,可以带来更快、更直观的用户体验。

  Firemonkey的Livebindings还允许用户把任何类型的数据或信息连接到任意Firemonkey用户界面(UI)或图形对象上。

  用户还可以将实时数据绑定到标准的UI控件或者高清3D图形,通过这种方法使得任何的数据类型都可见。同时,已连接的应用程序,很容易利用Firemonkey组件在数据库、云或Web服务上创建和扩展。

  Firemonkey包括Delphi XE2、C++ Builder XE2,以及RAD Studio XE2工具套件,后者中包含了RadPHP和Embarcadero的Prism。FireMonkey 之前跟大家介绍过,是基于GPU(图像处理单元)和移动桌面业务等多个应用平台,针对个人和企业的应用界面程序解决方案。


支持平台
FireMonkey可以在下面这些平台运行:

开发的32位应用程序可以在32位和64位的windows平台下运行 
支持64位应用程序在64位的windows平台下运行 
开发的32位应用程序可以支持Mac OS X(32和64位的kernels) 
RAD Studio XE2 is 是一个Win32的应用程序,跨平台的开发工具。

VCL 的兼容性

提示:FireMonkey(FMX)和Visual Component Library(VCL)并不兼容,并且不能同时的应用到相同的工程或应用程序。这就意味着一个应用程序只能使用FMX或者VCL,RTL则可以与他们两者共存,RTL被 Delphi 和C++共享,由System,SysUtils,IOUtils和Classes单元组成。

 

FireMonkey的主要功能

跨平台系统支持如 OS系统的窗口,菜单,计时器和对话框 
2D和3D图像支持 
强大的矢量引擎(像Adobe Flash或者Microsoft WPF) 
快速实施的矢量图像支持,分辨率控制,透明度控制,倾斜度控制,特殊的可视化填充 
可见即可得的设计时和运行时属性编译。 
先进的GUI引擎,窗体,按钮,textbox,numberbox,memo,anglebox,list box等等 
先进的基于矢量图的样式和用例样式风格的皮肤引擎 
2D 的图像外形支持,由brushes,pens,几何元素和transforms组成 
先进的动态背景线条运算,可以用最少的CPU进行简单精准的使用,自动的帧码率修正 
支持软件中位图的使用,包括去除阴影和斑点 
适当的组合各种图像控件和外形 
分层的窗体和支持Unicode编码 
支持JPEG, PNG, TIFF和 GIF格式文件的读写 
有多语言引擎的编辑器和例子 

FMX 单元组合
Following is a list of the units in FireMonkey:

FMX功能之所以这么强大,主要原因就是由下面这些强大的单元组合的:

FMX.Ani.pas
FMX.Canvas.D2D.pas
FMX.Canvas.GDIP.pas
FMX.Colors.pas
FMX.Context.DX9.pas
FMX.Controls.pas
FMX.Dialogs.pas
FMX.Effects.pas
FMX.ExtCtrls.pas
FMX.Filter.Effects.pas
FMX.Filter.pas
FMX.FilterCatBlur.pas
FMX.FilterCatColor.pas
FMX.FilterCatColorAdjust.pas
FMX.FilterCatComposite.pas
FMX.FilterCatDistortion.pas
FMX.FilterCatGenerator.pas
FMX.FilterCatGeometry.pas
FMX.FilterCatStyle.pas
FMX.FilterCatTiles.pas
FMX.FilterCatTransition.pas
FMX.Filter_Effects.pas
FMX.Forms.pas
FMX.Grid.pas
FMX.Layers3D.pas
FMX.Layouts.pas
FMX.ListBox.pas
FMX.Memo.pas
FMX.Menus.pas
FMX.Objects.pas
FMX.Objects3D.pas
FMX.Platform.Mac.pas
FMX.Platform.pas
FMX.Platform.Win.pas
FMX.TabControl.pas
FMX.TextBox.pas
FMX.TreeView.pas
FMX.Types.pas
FMX.Types3D.pas
FMX.Video.pas
FMX.Video.Win.pas如何创建一个FireMonkey Application

超级简单:

1、文件->新建->其他->Delphi项目->FireMonkey 2D应用程序

 File->New->Other->DelphiProjects->FireMonkey 2D Application

2、文件->新建->其他->Delphi项目->FireMonkey 3D应用程序

 File->New->Other->DelphiProjects->FireMonkey 3D Application

3、文件->新建->其他->C++Builder项目->FireMonkey 应用程序

 File->New->Other->C++ Builder Projects->FireMonkey Application

 
Delphi FireMonkey应用程序的使用单元
 SysUtils, Types, Classes, Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs; 
 C++FireMonkey 应用程序的Include 文件
#include 

 

    FireMonkey 提供优质的跨平台GUI控制,包括对windows,Mac OS X和IOS操作系统,FireMonkey 可以绘制每一个像素,这一点可以更好的让它与各种host平台兼容,避免了其他跨平台架构中使用的“最小公分母”图像的问题,而且这样FireMonkey 可以创建它自己的空间和应用程序设计规则。

布局控件

   一个  FireMonkey 应用程序可以支持多个控件在窗体中应用,该窗体可以支持2D内容和3D内容,甚至包括2者的混合内容。

坐标系统 

   原有的坐标默认是 top-left延展到bottom-right的方式(也就是用左上角扩展到右下角的坐标系统),坐标系的值是单精度的浮点数字类型,所有的支持平台都使用的方形的像素点,在一个特殊情况下,可以用一个坐标系单元来表达一个像素

   一个2D的控件位置属性是用Tposition中得X,Y坐标来决定的,同时用width和height属性来确定它的大小,这个跟老版本的delphiVCL相似,3维控件使用一个Tposition3D类型来控制,多了一个Z坐标系属性,X坐标系的方向向左,Y坐标系的方向朝下 由0递增,Z坐标系是控制深度的属性的。

父类,子类和所有者

   一个窗体容器一般是允许所有的控件存放的,窗体设计人员要遵循下面的原则来使用控件,所有者是一个窗体控件的创建的重要因素,如:

  TFmxObject.Create(AOwner: TComponent)
当通过代码创建控件的时候,我们指定了一个窗体是它的所有者,这样也就指定了被创建控件的生命周期,如果这个窗体被释放,那么跟他相关的所有者控件,也会自动释放。
我们也可以临时的使用NIl做控件的所有者,如果这样我们有义务用代码的方式来释放,特别是用try/ finally的异常处理方式来确保释放,以防止异常的发生或忘记释放控件。
为了让控件出现在窗口中,光是所有者并不足够,还必须被放置到元件树里面去,或是直接作为窗体的子节点,或者放在窗体下得某个容器里面,元件数可以展示整个结构,包括父容器子控件的关系都一目了然。

当一个控件关联到一个父容器的时间,如果没有特别设置,子控件将出现在父容器的左上角。

FireMonkey 是允许任何控件成为别人的控件的父容器,一点与delphi之前的VCL有很大得区别,比如说以前完全不能做到的,把一个button拖到一个button控件里面,现在已经变成了现实。

以前的控件讲得是出身,要是父亲不是一个容器类控件,是不能往里面拖控件的。大家赶紧去试试,把一个Tlabel拖进Tedit里面是什么感觉!再看看把Tedit删除里面的tlable还会存在吗?

控件校准和底衬

   一个控件的Align属性可以将控件进行自动定位,或者是居中,或者是展开,默认的情况是alNone的,枚举情的Talign Layout何以设置多种布局情况。

 其他的跟VCL控件类似,这里就不特别说明了,但是需要注意的是:控件角色边线和填充在firemonkey下,跟Css样式里面是相反的。

比例缩放和旋转

   这里是以前的delphi都没有功能,需要注意的是:比例的缩放和旋转不会改变控件的位置和大小属性,控制对象的8个基点始终是不会变化,但是看到的图片的缩放大小和旋转后的图像。

  2D的控件是如此,在3D的控件中有一个新的Z坐标系,默认值是1,今后我会用具体的例子来展示给大家。

控件自定义样式
    FireMonkey 控件的形状,画刷,样式    纹饰这些构成了一个样式。存储在style book里面。

默认样式介绍

  每一个控件类在针对每个不同的操作系统平台都有一个默认的样式,我们可以拖放一个控件在窗体设计区,右键去单击一次,选择“edit Default style”这就可以查看默认的样式了,



checkboxstyle: TLayout (The entire control)
TLayout (The layout for the box.)
background: TRectangle (The box itself, which is actually a composition of:)
TGlowEffect (Glow when the control has focus.)
TRectangle (The outside rectangle that forms the box.)
TRectangle (The inside rectangle.)
TColorAnimation (Color animation when the mouse moves over.)
TColorAnimation (and back out.)
checkmark: TPath (The check inside the box, drawn as a path, which has:)
TColorAnimation (Its own color animation when the check is toggled on or off.)
text: TText (And back under the top level, the text label.)
嘻嘻~很强大吧D迷们!!

相关阅读 >>

常用的几个网络函数和系统函数

adoquery 实现获取数据库所有表名

Delphi动态复选框源码

Delphi runtime error 216 程序退出后弹出错误

Delphi idhttp控件学习(图片下载)

Delphi从路径取得文件名的简易方法

Delphi 通过idhttp实现登录验证

Delphi 获取任意月份总共有多少天数

Delphi 释放资源文件中的exe文件并运行

Delphi中显示gif动画

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...