分享

Delphi XE2 之 FireMonkey

 山不转水转转 2012-03-10

Delphi XE2 的 FireMonkey 是跨平台的, 暂时只准备看看它在 Windows 下(我是 32 位 Win7)的应用情况. 很新的东西, 相信有了它, 以后的界面将会更灵活、漂亮, 也会淘汰掉诸多皮肤、透明、图像等第三方组件, 但不知和 Win8 的 WinRT 有无关联.


为了它, Delphi XE2 的诸多单元加了前缀, 诸如: Bde、Data、Datasnap、FMX、IB、Macapi、Posix、Soap、System、System.Bindings、 System.Generics、System.Internal、System.Mac、System.Win、Vcl、Winapi、Xml... 这样也好, 单元类别一幕了然. 和 FireMonkey 相关的单元有:


FMX.Ani.pas FMX.ASE.Importer.pas FMX.ASE.Lexer.pas FMX.ASE.Model.pas FMX.Canvas.D2D.pas FMX.Canvas.GDIP.pas FMX.Canvas.Mac.pas FMX.Colors.pas FMX.Consts.pas FMX.Context.DX9.pas FMX.Context.Mac.pas FMX.Controls.pas FMX.DAE.Importer.pas FMX.DAE.Model.pas FMX.DAE.Schema.pas FMX.Dialogs.pas FMX.Edit.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.Forms.pas FMX.Grid.pas FMX.Import.pas FMX.Layers3D.pas FMX.Layouts.pas FMX.ListBox.pas FMX.Memo.pas FMX.Menus.pas FMX.OBJ.Importer.pas FMX.OBJ.Model.pas FMX.Objects.pas FMX.Objects3D.pas FMX.Platform.Mac.pas FMX.Platform.pas FMX.Platform.Win.pas FMX.Printer.Mac.pas FMX.Printer.pas FMX.Printer.Win.pas FMX.TabControl.pas FMX.TreeView.pas FMX.Types.pas FMX.Types3D.pas FMX.Video.Mac.pas FMX.Video.pas FMX.Video.Win.pas


FireMonkey 自成体系, 有自己的 TApplication、TControl 等和 VCL 对应的大多数构件, 但基本还是根植于早期的 TComponent, 应该属于 VCL 的深度扩展. 在 Windows 下创建 FireMonkey 工程可建立 FireMonkey HD Application(2D) 或 FireMonkey 3D Application, 然后可随意添加 FireMonkey HD Form 或 FireMonkey 3D Form. 其窗体文件的后缀是 fmx 了.


在新 FireMonkey HD Application 下简单测试:


 


双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<B>unit</B> Unit1;
  
<B>interface</B>
  
<B>uses</B>
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs;
  
<B>type</B>
  TForm1 = <B>class</B>(TForm)
    Button1: TButton; //现在的 TButton 来自 FMX.Controls 单元
    <B>procedure</B> Button1Click(Sender: TObject);
  <B>private</B>
    { Private declarations }
  <B>public</B>
    { Public declarations }
  <B>end</B>;
  
<B>var</B>
  Form1: TForm1;
  
<B>implementation</B>
  
{$R *.fmx}
  
<B>procedure</B> TForm1.Button1Click(Sender: TObject);
<B>begin</B>
  ShowMessage('Hello FireMonkey!'); //现在 ShowMessage 方法来自 FMX.Dialogs 单元; 底层实现不同但用法一样, 太好了
<B>end</B>;
  
<B>end</B>.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多