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类继 ...
随机推荐
- java中判断是否是一个无用的类
类需要同时满足以下三个条件才能算是无用的类: 1.该类所有的实例都已经被回收,也就是java堆中不存在类的任何实例 2.加载该类的ClassLoader已经被回收 3.该类对应的java.lang.C ...
- Java 中的日志
参考:https://www.cnblogs.com/gavanwanggw/p/7305218.html 日志框架: 提供日志调用的接口,实际的日志输出托付给日志系统实现 JCL:比较流行的日志框架 ...
- 在同时满足if 和 else 条件的情况下,输出所需的内容。
请问划线处填什么内容,可以输出 "Hello World!"?if(__________){ printf("Hello ");}else{ pri ...
- python测试开发django-3.url配置
前言 我们在浏览器访问一个网页是通过url地址去访问的,django管理url配置是在urls.py文件.当一个页面数据很多时候,通过会有翻页的情况,那么页数是不固定的,如:page=1.也就是url ...
- java中mysql查询报错java.sql.SQLException: Before start of result set
异常:java.sql.SQLException: Before start of result set 解决方法:使用rs.getString();前一定要加上rs.next(); sm = con ...
- python基础 ---- 安装
------ 安装两个软件就行了 1.Anaconda 地址: 作用: 管理不同版本的python 的第三方包 下载第三方依赖包和构造版本开发环境 2.python常用的IDE环境 2.1 P ...
- Win10系统下安装Gradle-3.5
1. 下载 从官网https://gradle.org/releases/上下载3.5版本 2.解压 解压到D盘,路径是:D:\gradle-3.5 3.配置系统环境变量 首先依赖JAVA_HOME这 ...
- Rappid 消除试用版的弹出框
今天想学习JavaScript的FlowCharts,发现有个Rappid库挺不错的(如下图2所示),下了一个后发现在打开窗口时总是要弹出一个提示框,这严重影响了学习的进度,于是相办法将其去掉吧,按照 ...
- 1、背景介绍及移动云MAS平台 --短信平台
目的: 刚开发完成一套短信平台以及一个Web端短信发送系统,短信平台耗时两个周.短信发送系统耗时两个多月,开发使用的技术没什么高科技含量,在此主要是记录下很多情况的处理方案,希望能让大家提出改善方案和 ...
- Anaconda的安装及使用
总结的很清楚,做个记录. http://python.jobbole.com/86236/