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; interface uses
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.
Delphi XE2 之 FireMonkey 入门(1)的更多相关文章
- Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题
Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题 很喜欢 FMX 的一些新控件, 如: TExpander.TArcDial.TComboTrackBar.T ...
- Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...
- Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid
Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...
- Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit
Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...
- Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox
Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项 ...
- Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo 值得注意的变化: 1.其父类 TScrollBox 的许多特性也很有用处, 如: Memo1.UseSma ...
- Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox
Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollB ...
- Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu
Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopup ...
- Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public constructor Create(...); ov ...
- Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm
Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...
随机推荐
- NSString用法,object-C数组以及字符串拼接和分割
一.介绍使用NSString创建一个字符串的代码如下: #import <Foundation/Foundation.h>int main (int argc, char *argv[]) ...
- egretios包接微信/facebook登录
ios包有了,现在需要登录,就先使用微信登录吧,后继加一个facebook登录. 根据我的理解,先预测一下应该是怎么回事吧. 首先应该是要去微信的公共平台注册一下,说我的应用是什么应用,要填写企业信息 ...
- 使用modelsim直接仿真IP(FIFO)
不通过quartus仿真,简单的仿真,就不用建立工程了,直接建立个简单的库 1.改变当前modelsim的工作路径到quartus工程的根目录下 2.新建库 3.添加必要的文件 这里第一个框,要选 ...
- Django中使用djangorestframework产生Token
修改settings.py: INSTALLED_APPS添加rest_framework 产生Token from rest_framework.authtoken.models import To ...
- Django扩展内置User类
内置User类 使用内置User可以方便实现登录验证,利用Admin管理界面还可以方便添加.删除.修改用户. 一个内置的User类定义了以下字段: username: 用户名 password: 密码 ...
- CSS初识
CSS:层叠样式表,控制网页数据样式显示,使得数据的表现和内容分离 CSS的引入方式 使用元素内嵌样式表:例<a style=”font-size:40px”></a>表示在a ...
- 03python面向对象编程2
3.继承 如果你要编写的类是另一个现成类的特殊版本,可使用继承.一个类继承另一个类时,它将自动获得另一个类的所有属性和方法:原有的类称为父类,而新类称为子类.子类继承了其父类的所有属性和方法,同时还可 ...
- python3-使用__slots__
正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: class Student(object): pa ...
- adam优化
AdaGrad (Adaptive Gradient,自适应梯度) 对每个不同的参数调整不同的学习率, 对频繁变化的参数以更小的步长进行更新,而稀疏的参数以更大的步长进行更新. gt表示第t时间步的梯 ...
- Netty学习--第二章 BIO的模型详解
一.什么是阻塞.非阻塞.同步.异步 我们以A线程调用B线程的过程例子来讲解这四个概念 在一个程序里,A调用B了,此时如果是 同步: A必须等待B返回结果后,才能继续执行,但是在这期间A会一直监控B的返 ...