Delphi XE2 之 FireMonkey 入门,1

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 下简单测试:


unit Unit1;

interfaceuses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs;

type
  TForm1 = class(TForm)
    Button1: TButton; //现在的 TButton 来自 FMX.Controls 单元
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hello FireMonkey!'); //现在 ShowMessage 方法来自 FMX.Dialogs 单元; 底层实现不同但用法一样, 太好了
end;

end.