Delphi XE7试用记录1
Delphi XE7试用记录1
在网上看到XE7的一些新特征,觉得完整Unicode支持、扩展Pascal语法、更多功能的库都很吸引人,决定试试XE7。
XE7官方安装程序很大,因此选择了lite版,网上可以搜到下载地址,安装很容易,注意要把需要的附加功能包和安装程序放在一起,而且不要更名。
安装后,先建立一个VCL窗体程序,测试一下。
XE7启动速度比Delphi7慢了许多,毕竟程序大了很多,自带的组件包也多了很多。减少组件包的数量可以提高一些速度,网上说有默认程序选项,设置以后可以适用于新工程,但是我没有找到。排除组件包需要一个个反选,但信息保存在*.dproj文件中,可以从设置好的项目中复制相关信息,快速设置排除组件包。也可以把一个项目放到项目仓库中,甚至可以设置为默认项目,以后每次新建项目就从这个项目的副本。
新建VCL窗体程序,直接编译,编译后的程序达到10mb,比Delphi7大了很多倍。有人说目标程序的体积不是问题。(真正做项目,体积鲜有少于3M的,但,你会发现,无论你怎样添加第三方组件,delphi的目标程序鲜于大于6M的,原因在于,delphi无论怎样做,它很多扩展的unit都本源于一些基本的Unit。虽然,用xe2会比d7体积大个1M,但如果你用它做项目,会发现最终目标程序,只会比用d7多1M多一点点,因为体现不会因为窗口和组件的增加而增加,这种增加不是线性的。)
但是同样的功能,占用空间多也不太好,尤其是用于测试的小程序多了,占用空间也很可观。在工程文件中关闭调试信息、关闭RTTI可以减少1mb多。在工程文件的program字段下增加下面两句关闭RTTI:
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
目标程序任然大于9mb。但是安装JVCL后,发现Examples中的工程编译后却只有2-3mb,比较了一下工程选项,也没有找到原因。期待高手可以解答这个问题。
既然JVCL的工程比较小,就把一个JVCL的工程的内容清空,作为新建工程的出发点,这样新建工程也就3mb左右了。后来发现从Delphi Projects中的SDI Application出发新建项目,编译的程序也只有2mb多点。
VCL Forms Application: Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
SDI Application: Winapi.Windows, System.Classes, Vcl.Graphics, Vcl.Forms, Vcl.Controls, Vcl.Menus, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.ImgList, Vcl.StdActns, Vcl.ActnList, Vcl.ToolWin, System.Actions;
上面是两个项目窗体引用的单元,稍有不同,应该不会有很大差别。在SDI项目中增加了一个VCL Form,这个单元引用和VCL Forms Application项目中的Form引用相同,编译后尺寸仍然是2mb多点。让人费解。
编译选项不是原因,单元引用也不是原因,再看看工程代码。VCL Forms Application的工程代码中多了一句:
Application.MainFormOnTaskbar := True;
应该是用于Win7以上操作系统工具栏的代码。把这句注释掉,仍然不能减少程序的大小。
难道还漏掉了什么?既然无法发现原因,就把SDI项目中原来的窗体从项目中删除,把这个项目保存到项目仓库中,作为新建项目的出发点。
目标程序大小的问题总算有了对策。
Delphi XE7试用记录1的更多相关文章
- Delphi XE7试用记录2
Delphi XE7试用记录2 万一博客中介绍了不少Delphi7以后的新功能测试,想跟着测试一下.每次测试建立一个工程,在窗体上放几个按钮,测试几个相关的功能,这样虽然简单明了,但日后查阅起来不方便 ...
- RemObjects SDK Source For Delphi XE7
原文:http://blog.csdn.net/tht2009/article/details/39545545 1.目前官网最新版本是RemObjects SDK for Delphi and al ...
- 咏南CS多层插件式开发框架支持最新的DELPHI XE7
DATASNAP中间件: 中间件已经在好几个实际项目中应用,长时间运行异常稳定,可无人值守: 可编译环境:DELPHI XE5~DELPHI XE7,无需变动代码: 支持传统TCP/IP方式也支持RE ...
- Delphi XE7调用C++动态库出现乱码问题回顾
事情源于有个客户需使用我们C++的中间件动态库来跟设备连接通讯,但是传入以及传出的字符串指针格式都不正确(出现乱码或是被截断),估计是字符编码的问题导致.以下是解决问题的过程: 我们C++中间件动态库 ...
- delphi XE7 中的消息
在delphi XE7的程序开发中,消息机制保证进程间的通信. 在程序中,消息来自: 1)系统: 通知你的程序用户输入,涂画以及其他的系统范围的事件: 2)你的程序:不同的程序部分之间的通信信息. ...
- 关于delphi XE7中的动态数组和并行编程(第一部分)
本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...
- Delphi XE7中新并行库
Delphi XE7中添加了新的并行库,和.NET的Task和Parellel相似度99%. 详细内容能够看以下的文章: http://www.delphifeeds.com/go/s/119574 ...
- Delphi XE7下如何创建一个Android模拟器调试
利用Delphi XE7我们可以进行多种设备程序的开发,尤其是移动开发应用程序得到不断地加强.在实际的Android移动程序开发中,如果我们直接用android真机直接调试是非常不错.一是速度快,二是 ...
- DELPHI XE7 新的并行库
DELPHI XE7 的新功能列表里面增加了并行库System.Threading, System.SyncObjs. 为什么要增加新的并行库? 还是为了跨平台.以前要并行编程只能从TThread类继 ...
随机推荐
- html初识form表单
定义和用法 <form> 标签用于为用户输入创建 HTML 表单. 表单能够包含 input 元素,比如文本字段.复选框.单选框.提交按钮等等. 表单用于向服务器传输数据.通过submit ...
- Vue和后台交互的方式
1 vue-resource https://segmentfault.com/a/1190000007087934 2 axios 3 ajax
- nginx多域名、多证书
环境: 一台nginx服务器 192.168.10.251 两台windowsserver2012 IIS服务器 (192.168.10.252.192.168.10.253) 从阿里云上下载ssl证 ...
- vue(一)vue-cli安装
第一步:我们首先要全局安装vue官方提供的脚手架工具:vue-cli $ npm install vue-cli -g 第二步:然后我们就可以创建自己的vue项目了, $ vue init webpa ...
- checkpoint NGFW VM安装
step1:在VMworkstation中创建虚拟机向导,选择Linux 2.6内核 64位如下图: 虚拟机的配置建议如下: RAM:至少8GB Disk:120G CPU:四核 step2:使用IO ...
- vue根据路由变换,切换导航栏样式
<ul> <li> <router-link :to="{name: 'home'}" class="active_item" e ...
- 求数组中两数之和等于target的两个数的下标
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元 ...
- chip8模拟器的python3实现-1-CHIP8简介
打算编写一个NES模拟器,先从简单的chip8模拟器入手 1.CHIP-8简介 CHIP-8是一个解释型语言,由Joseph Weisbecker开发.最初CHIP-8在上个世纪70年代被使用在COS ...
- skynet记录2:模块简介
稍后填坑 bson.so client.so lpeg.so md5.so skynet.so sproto.so gate.so harbor.so logger.so snlua. ...
- 新手必备的Linux知识
测试人员为什么学习linux? 对于软件测试人员来说,我们测试的任何产品都是基于操作系统.比如我们每天都在使用的QQ软件,它有windows.ios.Android.Mac OS等版本,需要把QQ安装 ...