Delphi XE2 compiler performance】的更多相关文章

原文: http://blog.barrkel.com/2011/10/delphi-xe2-compiler-performance.html Delphi XE2 compiler performance Delphi XE2 introduced namespaces across the runtime library. This stressed unit name lookup inside the compiler, and led to some severe performan…
具体内容见PDF Delphi XE2有什么新功能Delphi XE2提供(offers)了令人兴奋(exciting)的新功能,让您能够建立高度可视化的,在Windows,Mac和iOS上的业务应用.新的Windows 64位支持,整个FireMonkey,新的VCL样式,实时数据绑定,扩展的数据库连接,和更多.构建64位Windows应用程序现在,你可以用Delphi创建64位Windows应用程序充分利用了最新的硬件,访问更多的内存,更高的性能.所有Windows技术支持64位FireMo…
说说Delphi XE2及以后的版本编译后的程序大小问题. 其实最终得到的程序并不大,由于编译器的变化,XE2里Debug版程序比Release版程序大很多,要减小程序体积,就使用Release版.下面给出稍微具体点的信息(都是空程序): Win32 Debug版 VCL程序大约6M           FireMonkey程序大约8M Win32 Release版 VCL程序大约1.5M       FireMonkey程序大约3M Win64 Debug版 VCL程序大约7M        …
Delphi XE2好好的,手贱乱删,结果新建一个工程都不能编译了,出现:DELPHI X2 [DCC Fatal Error] KjcxClient.dpr(1): F1027 Unit not found: 'System.pas' ..... 错误提示,应该是Library Path中的一些东西被搞乱了.经查,此信息在注册表中如下位置: [HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\History Lists\Library\DelphiW…
问题现象:某一天,启动DLEPHI XE2 后,新建一个工程,双击一个事件,“Stack Overflow- save your work and restart CodeGear delphi xe2”.解决方法: Delphi或者BCB在运行中出现“Stack Overflow- save your work and restart CodeGear”错误提示的解决方案  最近用D在做项目的过程中,IDE突然抛出了“Stack Overflow- save your work and res…
我今天把一个原来是Delphi2007的工程升级到了Delphi XE2,在编译ralease版本时候,发现无法添加UAC,我觉得可能是升级的原因,随后我用XE2新建了一个工程,但是在编译ralease版本时候,发现仍然无法添加UAC,但是debug版本可以加入UAC.通过多次尝试依然无法解决,最后我把工程所在目录名称修改了一下,这下子可以添加UAC了,无论哪个版本都可以添加UAC了.不知道什么原因,反正这样就可以了,如果你遇到类似问题,不妨修改一下工程目录名称试一试! http://blog.…
Delphi XE2出来了一阵子了,里面比较抢眼的东西,除了VCLStyle这个换肤的东西之外,另外最让人眼亮的应该是FMX这个东西了.万一的博客上都连载了一票的关于FMX的使用心得了.我还是没咋去关注,因为技术这个东西,天天在变,跟着他跑,俺伤不起啊!直到今天,看了一下盒子,然后群中也有人说关于FMX在Windows下面如何来发送消息的问题,说发送不了.实际上,FMX这个东西是一套跨平台机制的GUI类库,消息这个东西只是Windows下面的,所以发送消息这个说法应该不算通用.不过加以研究应该可…
我安装的是Delphi.XE2.RTM.v16.0.4256.43595.Lite.v5.0 ,安装完后打开显示是15天试用. 退出XE2后把C:\Program Files\Embarcadero\RAD Studio\9.0\License 文件夹删除. 再打开XE2就会出现注册窗口,如下图: 把Registration Code里的7022079复制出来(不要关闭注册窗口!). 打开注册机把7022079粘贴到Registration Code栏里,然后点击Generate serial获…
我今天把一个原来是Delphi2007的工程升级到了Delphi XE2,在编译ralease版本时候,发现无法添加UAC,我觉得可能是升级的原因,随后我用XE2新建了一个工程,但是在编译ralease版本时候,发现仍然无法添加UAC,但是debug版本可以加入UAC.通过多次尝试依然无法解决,最后我把工程所在目录名称修改了一下,这下子可以添加UAC了,无论哪个版本都可以添加UAC了.不知道什么原因,反正这样就可以了,如果你遇到类似问题,不妨修改一下工程目录名称试一试!…
Delphi XE2 新增 System.Zip 单元, 可用一句话压缩整个文件夹了 单元内主要就是 TZipFile 类, 最方便使用的是它的类方法: TZipFile.ExtractZipFile() //解压 Zip 文件到指定文件夹 TZipFile.IsValid() //判断指定文件是否是有效的 Zip 文件 TZipFile.ZipDirectoryContents() //压缩指定路径下的所有文件 测试: uses System.Zip; { 把 C:\Temp\TestDir…
Delphi XE2 新控件 Firemonkey 布局Panel Windows平台VCl TGridPanel TFlowPanel FMX 跨平台 TLayout TGridLayout TFlowLayout TGridPanelLayout fmx的Layout容器比panel节省资源 TGridPanelLayout GridPanelLayout1.GridPanelLayout http://docwiki.embarcadero.com/Libraries/Seattle/en…
DELPHI XE2 采用 JSON 的方式来序列化对象 以下代码测试通过.问题是里面的中文,在反序列化后是乱码. 1. 序列化对象为字符串,Subject 里面的中文看起来正常,仍然是中文: 2. 反序列化为对象后,Subject 里面的中文是乱码. XE2 处理 Unicode 还是有问题啊. TItemRecord = class private FID: string; FSubject: string; FADate: TDateTime; published property ID:…
看看 Delphi XE2 为 VCL 提供的 14 种样式 其实只提供了 13 个 vsf 样式文件, 还有默认的 Windows 样式, 共 14 种. 在空白窗体上添加 ListBox1 等控件, 测试代码: uses IOUtils, Vcl.Styles, vcl.Themes; procedure TForm1.FormCreate(Sender: TObject); var   dir, fileName, styleName: string; begin   //VCL 的样式文…
终于, Delphi XE2 携带 GDI+ 库了 使用了较早的 http://www.progdigy.com uses Winapi.GDIPAPI, Winapi.GDIPOBJ{, Winapi.GDIPUTIL}; procedure TForm1.FormPaint(Sender: TObject); var   graphics: TGPGraphics;   pen: TGPPen; begin   graphics := TGPGraphics.Create(Canvas.Ha…
Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题 很喜欢 FMX 的一些新控件, 如: TExpander.TArcDial.TComboTrackBar.TPathLabel 等等, 没时间继续学习了. 对 FMX 的整体感觉: 还不成熟, 但肯定有前景; 它的构架师有远见.了不起, 很难估计他开启的是多大一扇门! 本将继续学习:1.TCanvas.TBrush.TApplication;2.FMX 中的 GDI+.D2D.DirectX;3.FMX…
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> TTreeView 子项类型是 TTreeViewItem. 测试, 先在窗体上放一个 TTreeView, 并需要它的 OnChange 事件: unit Unit1; interface uses   System.SysUtils, System.Types, System.UITypes, Sys…
Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1.它们的列对象分别是: TStringColumn.TColumn;2.TStringGrid 比 TGrid 多出了 Cells[] 属性. 因为 TGrid 没有 Cells[] 属性, 暂时不方便使用; 我尝试取其当前单元值时竟然用了这样的代码:(Grid1.Columns[Grid1.Col…
Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditListBox;TComboBox.TComboEdit 虽不是不是从它们继承, 但分别包含了它们, 所以使用起来都有点像 TListBox. TComboBox 更像 TListBox, 比 TComboEdit 多出了 Selected 等成员;TComboEdit 是从 TCustomEdit…
Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项是 TListBoxItem 类型. TListBox 的功能在 TCustomListBox 里就完成了. 值得注意的变化是: 1.复选框(相关属性: ShowCheckboxes.TListBoxItem.IsChecked)2.交替背景(通过继承还可以调整交替的背景色)3.TListBoxItem 可调…
Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo 值得注意的变化: 1.其父类 TScrollBox 的许多特性也很有用处, 如:   Memo1.UseSmallScrollBars := True; 2.内部使用了一个栈列表管理动作, 现在可以执行多步撤销(UnDo). 3.使用了一个新的结构体 TCaretPosition 来描述当前位置, 并为该结构提供了一个公用的快速构造函数 ComposeCaretPos().   TCaretPosition…
Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollBox TScrollBox 是不少控件(TMemo.TListBox.TStringGrid.TTreeView.TImageViewer 等)的基础, 所以先学. TVertScrollBox 只比 TScrollBox 少了竖滚动条. TFramedScrollBox.TFramedVertSc…
Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopupMenu.TMainMenu; 它们都是要包含 TMenuItem; 在设计时添加 TMenuItem 很容易.其中的 TMainMenu 暂不能应用其他样式; TMenuBar 只有一个值得注意 UseOSMenu 属性. 控件 PopupMenu 属性用于指定右键菜单. 暂时无法直接为窗体指定右…
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public   constructor Create(...); override;    //   destructor Destroy; override;          //   procedure AddObject(...); override;    //添加对象   procedure RemoveObject(...); override; //移…
Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时, 给的确是 "backgroundstyle" ... 现在明白了, 原来窗体上覆盖着一个 TRectangle 对象: uses FMX.Objects; procedure TForm1.Button1Click(Sender: TObject); begin   (Self.Chi…
Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算上从 TComponent 继承的 Tag, 可以暂存多种类型的数据了. ChildrenCount.Children[] 代替了之前的 ControlCount.Controls[].有增删 Children 的几个方法: AddObject().InsertObject().RemoveObje…
Delphi XE2 之 FireMonkey 入门(34) - 控件基础: TFmxObject: 克隆对象 有两个和克隆相关的方法: Clone().CloneChildFromStream(). Clone() 很好用, 但 CloneChildFromStream() 的源码很明显地写错了(是小问题, 谁外语好去报一下). procedure TForm1.FormCreate(Sender: TObject); var   i: Integer; begin   do     List…
Delphi XE2 之 FireMonkey 入门(33) - 控件基础: TFmxObject: SaveToStream.LoadFromStream.SaveToBinStream.LoadFromBinStream SaveToStream().LoadFromStream() 对应文本流;SaveToBinStream().LoadFromBinStream() 对应二进制流; 相对文本流, 二进制流会小一些. 有这几个方法, 控件数据与状态的序列化就太容易了. 示例:1.控件: L…
Delphi XE2 之 FireMonkey 入门(32) - 数据绑定: TBindingsList: TBindList.TBindPosition [未完成...] //待补...…
Delphi XE2 之 FireMonkey 入门(31) - 数据绑定: 绑定数据库 一.全设计时操作: 先在窗体上放置控件: DataSource1    : TDataSource; ClientDataSet1 : TClientDataSet; Label1        : TLabel; Edit1          : TEdit; Memo1          : TMemo; ImageControl1  : TImageControl; BindNavigator1 :…
Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件 表达式中的函数有限, 譬如我想通过绑定输出文本的长度(譬如在 Label1 中绑定输出 Edit1.Text 的长度)就没有相应的函数; 这可在 TBindExpression 的 OnAssigningValue 事件中处理. TBindExpression 和它的兄弟们 (TBindExprItems.TBin…