<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3399501599103851137</id><updated>2011-04-22T10:11:23.611+08:00</updated><category term='站内新闻'/><category term='数据库'/><category term='技巧和决窍(Tips and Tricks)'/><category term='XML'/><category term='开发资源'/><category term='开发工具'/><category term='翻译'/><category term='Delphi 资讯'/><category term='第三方组件'/><category term='免费源代码(Free Source)'/><category term='原创'/><title type='text'>About Delphi Programming 中文版</title><subtitle type='html'>About Delphi Programming (http://delphi.about.com) 文章中译版及 CodeGear(Borland) Delphi 开发工具相关资讯</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-1651771306929856439</id><published>2007-05-07T12:21:00.000+08:00</published><updated>2007-05-07T12:36:40.455+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='开发资源'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>“Powered By Delphi” Logo 图像</title><content type='html'>以下是一些“Powered By Delphi”LOGO图像。您可以将这些图片放到你的网站、应用程序Splash屏、关于对话框、帮助、文档等你认为合适的地方。&lt;br /&gt;&lt;img src='http://z.about.com/d/delphi/1/0/9/9/borland_delphi_built_with.gif' /&gt;&lt;br /&gt;&lt;img src='http://z.about.com/d/delphi/1/0/7/9/borland_delphi_designed_for.gif' /&gt;&lt;br /&gt;&lt;img src='http://z.about.com/d/delphi/1/0/A/9/borland_delphi_powered.gif' /&gt;&lt;br /&gt;&lt;img src='http://z.about.com/d/delphi/1/0/D/9/bdelpow.png' /&gt;&lt;br /&gt;&lt;br /&gt;原文名称："Powered by Delphi" Logo Images &lt;br /&gt;原文日期：2005-05-24&lt;br /&gt;原文地址：&lt;a href='http://delphi.about.com/library/weekly/aa052405a.htm'&gt;http://delphi.about.com/library/weekly/aa052405a.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-1651771306929856439?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/1651771306929856439/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=1651771306929856439' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1651771306929856439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1651771306929856439'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2007/05/powered-by-delphilogo.html' title='“Powered By Delphi” Logo 图像'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-1235797841061284727</id><published>2007-04-30T17:55:00.000+08:00</published><updated>2007-05-15T19:34:50.741+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='数据库'/><category scheme='http://www.blogger.com/atom/ns#' term='原创'/><title type='text'>SQL Server 数据库转换为 Access 数据库</title><content type='html'>最近正在升级一个程序，使其支持多数据库。&lt;br /&gt;原来的程序数据库为SQL Server，所以使用SQL Server 的“导入和导出数据”功能将一个 SQL Server 数据库转换成了Access数据库，但其中发现了一些问题，但也找到了解决方案，一并记录于此：&lt;br /&gt;&lt;br /&gt;1、转换程序会将SQL Server的视图转换成表，而不是Access的查询；&lt;br /&gt;2、在为字段设置默认值为空字符的时候，SQL Server用''，而Access用""；&lt;br /&gt;3、Access中没有GetDate()函数，应该使用Now()函数代替；&lt;br /&gt;4、Access没有SQL Server用来获取客户端机器名的host_name()函数；&lt;br /&gt;5、Access中没有Case When Then语句，但可以用IIF()函数模拟实现功能；&lt;br /&gt;6、发现：Access使用的是Visual Basic的语言结构和函数；&lt;br /&gt;7、转换程序会正确转换SQL Server字段的 IS NULL 属性；&lt;br /&gt;8、Access也支持多字段的索引，只是设置方法有点特别（参见帮助）；&lt;br /&gt;9、SQL Server中bit型的1、0值，在Access中为True和False；&lt;br /&gt;10、在Access中使用多个LEFT JOIN这样的语句时，必须用括号做相关的界定；&lt;br /&gt;11、Access的SQL没有注释语句，SQL Server的/**/无法通用；&lt;br /&gt;12、一条Insert语句在Access查询中正常运行，但在程序中出现“Insert Into 语句的语法错误”，后来发现原来是语句中的一个列名是Access的关键字（用［］界定可解决问题），但奇怪的是将该语句放置到Access的查询中执行却不会出错。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;需要对转换后的Access数据库进行以下项目的检查，以确保与SQL Server一致:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1、主键。转换后的Access数据库都没有主键，需自己设置；&lt;br /&gt;2、自增字段。转换程序会将SQL Server的自增字段转换为数字型，需手动修改为Access的“自动编号”类型；&lt;br /&gt;3、默认值。转换程序不会转换SQL Server中设置的默认值，需手动设置；&lt;br /&gt;4、bigint型字段。转换程序会将SQL Server的bigint转换为小数，须手动调整为Access的整型或长整型；&lt;br /&gt;5、索引。转换程序不会转换索引，需手动在Access中建立索引。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;在Delphi下，想让程序同时支持Access及SQL Server，需注意以下方面：&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1、在Access中使用 SELECT * FROM Books WHERE RegDate = '2007-5-1' 是会出现“标准表达式中数据类型不匹配”这样的错误的（RegDate是日期型），必须使用SELECT * FROM Books WHERE RegDate = #2007-5-1# 或 SELECT * FROM Books WHERE RegDate = CDate('2007-5-1')；&lt;br /&gt;但在Access中，Insert、delete和update中使用单引号界定日期却是可以正常执行的。&lt;br /&gt;2、尽量不要使用SQL Server的bigint类型，尤其该字段是自增的情况下；&lt;br /&gt;3、Access的varchar（文本）型最大只有255，所以如果一个文本型字段大于255时，最好定义成备注型（Access中）或text型（SQL Server中）；&lt;br /&gt;4、在Access中一般会出现如下错误：不正常地定义参数对象。提供了不一致或不完整的信息。将相应Query的ParamCheck设为False即可；&lt;br /&gt;5、Access中的逻辑值在库中为-1和0,而SQL Server中为1和0,所以写BoolField = 1这样的语句有兼容性问题，应该改为BoolField &lt;&gt; 0；&lt;br /&gt;6、在Access中有主键的Query才可更新，而SQL Server无此要求。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-1235797841061284727?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/1235797841061284727/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=1235797841061284727' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1235797841061284727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1235797841061284727'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2007/04/sql-server-access.html' title='SQL Server 数据库转换为 Access 数据库'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-3289978183458875389</id><published>2007-04-29T16:22:00.000+08:00</published><updated>2007-04-29T17:01:03.857+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='第三方组件'/><category scheme='http://www.blogger.com/atom/ns#' term='开发工具'/><category scheme='http://www.blogger.com/atom/ns#' term='原创'/><title type='text'>EhLib 4.1 在 Delphi 2007 下无法过滤和排序的问题</title><content type='html'>今天将一个程序升级到了 Delphi 2007，该程序是用Delphi7开发的，程序中用到了一个第三方组件&lt;a href="http://www.ehlib.com" target="_blank"&gt;EhLib&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;原先的 EhLib 是v3.6，无法在Delphi2007下安装，所以安装了最新的 v4.1。&lt;br /&gt;&lt;br /&gt;原先正常的程序，在升级后，发现 DBGridEh 无法进行排序和过滤，执行操作时无反应。后来发现，如果选择本地过滤和排序的话，一切都会正常；如果是服务器端排序和过滤，则无法正常执行，错误信息为类型转换错误。&lt;br /&gt;&lt;br /&gt;跟踪EhLib代码发现，是DBUtilsEh.pas文件中的SetDataSetSQLLikeProp 和IsDataSetHaveSQLLikeProp 函数中的以下相关代码报错：&lt;br /&gt;&lt;blockquote&gt;......&lt;br /&gt;if (TObject(GetOrdProp(DataSet, FPropInfo)) as TStrings) &lt;&gt; nil then&lt;br /&gt;  SQLPropValue := (TObject(GetOrdProp(DataSet, FPropInfo)) as TStrings).Text&lt;br /&gt;......&lt;/blockquote&gt;&lt;br /&gt;具体的类型转换错误是指TObject与TStrings转换错误，所以报错。&lt;br /&gt;我用的是ADOQuery，其SQL属性在Delphi7下是TStrings类型，在Delphi2007下是TWideStrings，由TObject转换为TStrings按理说不应该转换不成功啊。&lt;br /&gt;&lt;br /&gt;继续查看代码才发现：&lt;br /&gt;&lt;strong&gt;TWideStrings没有继承自TStrings，而是继承自TPersistent&lt;/strong&gt;，理论上跟TStrings没有关系，将他转换为TStrings，当然会报错了。&lt;br /&gt;&lt;br /&gt;找到原因后，将EhLib相关出错函数的代码改为以下：&lt;br /&gt;&lt;blockquote&gt;......&lt;br /&gt;if TObject(GetOrdProp(DataSet, FPropInfo)) is TStrings then&lt;br /&gt;  SQLPropValue := (TObject(GetOrdProp(DataSet, FPropInfo)) as TStrings).Text&lt;br /&gt;else if TObject(GetOrdProp(DataSet, FPropInfo)) is TWideStrings then&lt;br /&gt;  SQLPropValue := (TObject(GetOrdProp(DataSet, FPropInfo)) as TWideStrings).Text&lt;br /&gt;else&lt;br /&gt;  Exit;&lt;br /&gt;......&lt;/blockquote&gt;&lt;br /&gt;修改后，重新编译，一切正常。&lt;br /&gt;&lt;br /&gt;附1：&lt;a href="http://netrobo.googlepages.com/DbUtilsEh.pas"&gt;修改后的DBUtilsEh.pas文件&lt;/a&gt;；&lt;br /&gt;附2：在Delphi2007中安装EhLib4.1时会报错，注释掉EhLibVCL.pas文件中的“TBytes = array of Byte”行即可正常安装（Delphi2007自己定义了TBytes）。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-3289978183458875389?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/3289978183458875389/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=3289978183458875389' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/3289978183458875389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/3289978183458875389'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2007/04/ehlib-41-delphi-2007.html' title='EhLib 4.1 在 Delphi 2007 下无法过滤和排序的问题'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-5048424502674950487</id><published>2007-04-29T12:07:00.000+08:00</published><updated>2007-04-29T12:23:57.186+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='开发工具'/><category scheme='http://www.blogger.com/atom/ns#' term='原创'/><title type='text'>Delphi 2007 下安装 Shell 组件</title><content type='html'>Delphi 2007 中没有 Shell 组件，但在Delphi的lib目录存在相关的源文件，并且在C:\Windows\System32目录下存在vclshlctrls100.bpl的运行时包，唯独没有设计时包。&lt;br /&gt;&lt;br /&gt;但在Delphi的Demo中有一个ShellControls，安装其目录下的 dclshlctrls.dpk 即可成功安装Shell组件。&lt;br /&gt;&lt;br /&gt;注1：Shell组件安装后还是在组件面板的Sample页中；&lt;br /&gt;注2：Delphi2007的Demo目录在：我的电脑－共享文档－RAD Studio－Demos－DelphiWin32－VCLWin32；&lt;br /&gt;&lt;br /&gt;在使用Shell这样的组件时，程序编译后都会出现以下的警告：[DCC Warning] Unit1.pas(7): W1005 Unit 'ShellCtrls' is specific to a platform ，如果您不想让他显示的话，可以在你工程相关源文件的开头加上以下代码：&lt;br /&gt;&lt;blockquote&gt;{$WARN UNIT_PLATFORM OFF}&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-5048424502674950487?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/5048424502674950487/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=5048424502674950487' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5048424502674950487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5048424502674950487'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2007/04/delphi-2007-shell.html' title='Delphi 2007 下安装 Shell 组件'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-4452203682392584243</id><published>2007-04-23T15:56:00.000+08:00</published><updated>2007-04-29T11:23:39.554+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='开发工具'/><category scheme='http://www.blogger.com/atom/ns#' term='原创'/><title type='text'>Delphi 2007 体验！</title><content type='html'>CodeGear(From Borland) 公司发布了最新的Delphi 2007 For Win32版本。作为一个 Delphi 的使用者，第一时间下载、安装并进行了体验，现将一些使用感受记录如下：&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;注：&lt;/strong&gt;以下的对比主要是针对Delphi7与Delphi2007，以下列出的部分功能可能在Delphi8/2005/2006中已存在。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1、下载&lt;/strong&gt;&lt;br /&gt;可在CodeGear官方网站下载试用版，或在&lt;a href="http://www.verycd.com"&gt;VeryCD&lt;/a&gt;上寻找ISO，整个安装文件约1.2G多一些。&lt;br /&gt;&lt;strong&gt;2、安装&lt;/strong&gt;&lt;br /&gt;Delphi 2007放弃了InstallShield，采用了InstallAware安装软件，整个安装操作非常友好。在安装结束时，会提示是否在Delphi启动时自动检查更新，建议不要选择此项，因为安装完成后无法禁用。Delphi 2007在开始菜单中建立了自动检查更新的快捷方式。&lt;br /&gt;&lt;img src="http://farm1.static.flickr.com/182/469659096_f6dd3956ee_o.jpg" /&gt;&lt;br /&gt;&lt;strong&gt;3、启动&lt;/strong&gt;&lt;br /&gt;Delphi 2007的启动速度没有传说中那么快，但和Delphi7相比也差不了多少，总体感觉不错。&lt;br /&gt;&lt;strong&gt;4、界面&lt;/strong&gt;&lt;br /&gt;Delphi 2007的界面和之前的BDS 8/2005/2006界面风格是一样的，个人感觉不是太好，因为整个IDE颜色偏暗，Visual Studio 2005那种白亮色的界面应该更好一些。Splash和Welcome Page作的还是那么粗糙，CodeGear应该尽快找个好美工啊。&lt;br /&gt;&lt;strong&gt;5、速度&lt;/strong&gt;&lt;br /&gt;IDE启动速度还不错，IDE的反映速度也很好，尤其是程序的编译速度，个人感觉比Delphi7还快。&lt;br /&gt;&lt;strong&gt;6、返回传统界面&lt;/strong&gt;&lt;br /&gt;习惯了Delphi7及之前版本的界面，对Delphi2007的这种一体式界面多少有些难以适应，尤其是窗体设计器。虽然可以通过更改Desktop Layout为Classic Undocked让其与Delphi7有些相像，但却失去了Delphi7的那种自由设计的效果。&lt;br /&gt;在Delphi2007中，更改一个选项，可让IDE的窗体设计器返回Delphi的传统风格：Tools--Options--VCL Designer，取消选中Embedded Designer。&lt;br /&gt;此选项只有在IDE重启后才会生效，生效后整个界面和Delphi7差不多，但组件面板无法达到传统界面的效果。但此设计似乎有BUG，当IDE最小化的时候，窗体设计器却没有一同最小化。&lt;br /&gt;&lt;strong&gt;7、新增属性：Application.MainFormOnTaskBar&lt;/strong&gt;&lt;br /&gt;用Delphi2007新建一工程，然后查看工程文件的源代码，发现多一行代码：&lt;br /&gt;Application.MainFormOnTaskBar := True;&lt;br /&gt;Delphi2007默认已将MainForm显示于任务栏，而不是之前版本的Application。这个功能在以前很多Delphier都讨论过，现在Delphi自身支持了。设计此属性很明显，因该是为了兼容Windows Vista。&lt;br /&gt;当然任务栏的右键菜单也发生了变化：&lt;br /&gt;&lt;img src="http://farm1.static.flickr.com/220/469701037_37b489bf7b_o.jpg" /&gt;&lt;br /&gt;（Delphi 7 任务栏右键菜单）&lt;br /&gt;&lt;img src="http://farm1.static.flickr.com/173/469701041_ee11b2f0e4_o.jpg" /&gt;&lt;br /&gt;（Delphi 2007 任务栏右键菜单）&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8、新Project Option: Enable Runtime Themes&lt;/strong&gt;&lt;br /&gt;该工程选项默认启用，用Delphi 2007编写的程序默认将启用Themes，这是一个非常好的功能，以前必须用组件：Win32-XPManifest。&lt;br /&gt;Delphi 2007 IDE本身、窗体设计器已支持操作系统Themes。&lt;br /&gt;&lt;strong&gt;9、TeeChart升级为了TeeChart Standard 7.10&lt;/strong&gt;&lt;br /&gt;TeeChart终于升级了新版本。&lt;br /&gt;&lt;strong&gt;10、报表组件&lt;/strong&gt;&lt;br /&gt;Delphi 2007似乎没有附带任何报表组件，QuickReport和Rave消失了。&lt;br /&gt;&lt;strong&gt;11、DBExpress&lt;/strong&gt;&lt;br /&gt;DBExpress重大升级至v4,架构已重写，使用此技术的Delphier可以试试，本人很少使用。&lt;br /&gt;&lt;strong&gt;12、模态窗体下的窗体闪动&lt;/strong&gt;&lt;br /&gt;在当前窗体用ShowModal显示一个模态窗体后，再次点击当前窗口，此时显示出的模态窗口会闪动，Delphi 2007编译的程序终于已能实现此效果，这也是Windows程序的标准效果。&lt;br /&gt;&lt;strong&gt;13、Project Clean 功能&lt;/strong&gt;&lt;br /&gt;在Project Manager中右键点击工程名称，选择Clean，会自动清除工程的所有临时文件和dcu文件。&lt;br /&gt;&lt;strong&gt;14、有用的快捷键&lt;/strong&gt;&lt;br /&gt;终于为Build Project和Run Without Dedugging功能设置了快捷键。&lt;br /&gt;&lt;strong&gt;15、比Delphi7超强的编辑器&lt;/strong&gt;&lt;br /&gt;Delphi2007的编辑器功能强大，这也应该是放弃Delphi7的重要理由，如输入Begin，自动生成End，代码重构，语法实时检查，显示行号等。&lt;br /&gt;不过Delphi2007的那个代码帮助提示信息的窗口真是太丑了。&lt;br /&gt;&lt;strong&gt;16、窗体设计器控件感应对齐&lt;/strong&gt;&lt;br /&gt;窗体设计器中的控件可以感应对齐，相当好的功能啊。&lt;br /&gt;&lt;strong&gt;17、中文变量名&lt;/strong&gt;&lt;br /&gt;现在的Delphi已经支持中文变量名了，你可以试试。&lt;br /&gt;&lt;strong&gt;18、新的组件&lt;/strong&gt;&lt;br /&gt;TTrayIcon、TFlowPanel、TGridPanel三个控件非常有用。Delphi2007新增Vista Dialogs组件，这些组件效果非常好，但是基于Vista API的，所以只能在Windows Vista下使用。&lt;br /&gt;&lt;strong&gt;19、TLabel控件可在内容超出范围时显示省略号&lt;/strong&gt;&lt;br /&gt;此功能非常实用，尤其是在Label中显示一个文件路径时，设置TLabel的EllipsisPosition属性即可。&lt;br /&gt;&lt;strong&gt;20、新增了一些有用的属性&lt;/strong&gt;&lt;br /&gt;Delphi2007对大多数常规组件增加了一些有用的属性，如Margins、Padding、TForm.PopupMode等，仔细查看一些控件的属性列表，你就会发现很多陌生的属性，但他们确实都非常有用。&lt;br /&gt;&lt;br /&gt;用了Delphi 2007一段时间，但也发现一些小问题：&lt;br /&gt;1、在Project Manager中更改PAS文件的名称后，不自动更新uses列表中的名称，呵呵～，这个要求不知道过不过分。&lt;br /&gt;2、TMainMenu组件在窗体设计器中不可预览。&lt;br /&gt;3、编辑器错误提示功能会误报，如Application.MainFormOnTaskBar属性，有时会提示不存在该属性。&lt;br /&gt;4、新安装的组件，不但要在Tool--Options中设置Library Path，还必须设置Browseing Path，组件才能被正常使用。&lt;br /&gt;&lt;br /&gt;用了N年的Delphi7了，体验了Delphi2007后觉得真应该换换了，综合来看，Delphi2007是一个非常好的版本，IDE速度及功能性各方面都已经非常优秀，你准备使用Delphi2007吗？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-4452203682392584243?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/4452203682392584243/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=4452203682392584243' title='5 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4452203682392584243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4452203682392584243'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2007/04/delphi-2007.html' title='Delphi 2007 体验！'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-3354905138404672687</id><published>2007-04-18T18:31:00.000+08:00</published><updated>2007-04-18T18:49:20.933+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='第三方组件'/><title type='text'>DevExpress ExpressBars 6 发布！支持 Ribbons 界面！</title><content type='html'>DevExpress 公司最近发布了最新的 ExpressBars 组件包的新版本V6，最主要的改进就是支持 Microsoft Office 2007 中新设计的 Ribbons 界面风格。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.devexpress.com/Products/VCL/ExBars/i/features/ribbon-overview.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.devexpress.com/Products/VCL/ExBars/i/features/ribbon/applicationmenu.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.devexpress.com/Products/VCL/ExBars/i/features/ribbon/advancedtooltips.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.devexpress.com/Products/VCL/ExBars/i/features/ribbon/RibbonMDI.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.devexpress.com/Products/VCL/ExBars/i/features/ribbon/RibbonDesignTime.png" /&gt;&lt;br /&gt;&lt;br /&gt;详细更新请查看：&lt;a href="http://www.devexpress.com/Products/VCL/ExBars/WhatsNewV6.xml"&gt;What's New in ExpressBars v6&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-3354905138404672687?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/3354905138404672687/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=3354905138404672687' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/3354905138404672687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/3354905138404672687'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2007/04/devexpress-expressbars-6-ribbons.html' title='DevExpress ExpressBars 6 发布！支持 Ribbons 界面！'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-787618669111483046</id><published>2006-12-04T16:34:00.000+08:00</published><updated>2006-12-04T16:57:51.366+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>将 TListBox 列表项目显示成多列</title><content type='html'>Delphi 的 TListBox 控件可显示一个列表项目集合在一个可滚动的列表中。&lt;br /&gt;根据设计，一个列表框显示他的列表项目在一列中。&lt;br /&gt;如果你想要在一行上显示多个项目，从而让一个列表框拥有多个列，你可以使用下面的方法：&lt;br /&gt;&lt;br /&gt;设置 TabWidth 属性。该属性用像素值指定列宽。&lt;br /&gt;当你在列表框中添加项目的时候，用“^I”分隔列，也就是大写的“i”，像下面这样：&lt;br /&gt;&lt;blockquote&gt;begin&lt;br /&gt;  ListBox1.Items.Add('First'^I'Second'^I'Third') ;&lt;br /&gt;  ListBox1.Items.Add('C1R1'^I'C2R1'^I'C3R1') ;&lt;br /&gt;  ListBox1.Items.Add('C1R2'^I'C2R2'^I'C3R2') ;&lt;br /&gt;  ListBox1.Items.Add('C1R3'^I'C2R3'^I'C3R3') ;&lt;br /&gt;  ListBox1.Items.Add('C1R4'^I'C2R4'^I'C3R4') ;&lt;br /&gt;  ListBox1.Items.Add('C1R5'^I'C2R5'^I'C3R5') ;&lt;br /&gt;  ListBox1.Items.Add('C1R6'^I'C2R6'^I'C3R6') ;&lt;br /&gt;  ListBox1.Items.Add('C1R7'^I'C2R7'^I'C3R7') ;&lt;br /&gt;  ListBox1.Items.Add('C1R8'^I'C2R8'^I'C3R8') ;&lt;br /&gt;  ListBox1.Items.Add('C1R9'^I'C2R9'^I'C3R9') ;&lt;br /&gt;end;&lt;/blockquote&gt;&lt;img src="http://z.about.com/d/delphi/1/0/L/a/tlistboxcolumns.gif" /&gt;&lt;br /&gt;&lt;br /&gt;原文名称：Show TListBox Items in Multiple Columns&lt;br /&gt;原文地址：&lt;a target="_blank" href="http://delphi.about.com/cs/adptips2000/a/bltip1200_3.htm"&gt;http://delphi.about.com/cs/adptips2000/a/bltip1200_3.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-787618669111483046?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/787618669111483046/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=787618669111483046' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/787618669111483046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/787618669111483046'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/12/tlistbox.html' title='将 TListBox 列表项目显示成多列'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-5913001599393680184</id><published>2006-11-28T11:15:00.000+08:00</published><updated>2006-11-28T11:25:21.886+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='第三方组件'/><title type='text'>DevExpress QuantumGrid v6 发布！</title><content type='html'>DevExpress QuantumGrid 是一套非常优秀的 VCL 组件。近日，&lt;a href="http://www.devexpress.com" target="_blank"&gt;DevExpress&lt;/a&gt; 发布了DevExpress VCL QuantumGrid 的 v6 版，此版本做了许多改进，尤其是图表和搜索方面。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.devexpress.com/Products/VCL/ExQuantumGrid/i/main_screen.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-5913001599393680184?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/5913001599393680184/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=5913001599393680184' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5913001599393680184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5913001599393680184'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/11/devexpress-quantumgrid-v6.html' title='DevExpress QuantumGrid v6 发布！'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-4647691494270959700</id><published>2006-11-25T12:51:00.000+08:00</published><updated>2006-11-28T11:22:18.251+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 资讯'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>Borland Delphi 不再，现在是 CodeGear Delphi！</title><content type='html'>&lt;strong&gt;TCodeGear.Create(Delphi);&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;官方消息：Delphi 不再是“Borland Delphi”，现在应是“CodeGear Delphi”！&lt;br /&gt;&lt;br /&gt;有很长一段时间，About Delphi Programming 网站主页名称是“About Borland Delphi Programming”，后来改为“About Borland(DevCo) Delphi Programming”，今天（2006-11-14）他的新名字是“About CodeGear Delphi Programming”！&lt;br /&gt;&lt;br /&gt;原文名称：Borland Delphi no more - It's CodeGear Delphi!&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/od/humorandfun/a/codegear.htm"&gt;http://delphi.about.com/od/humorandfun/a/codegear.htm&lt;/a&gt;&lt;br /&gt;原文日期：2006-11-15&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-4647691494270959700?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/4647691494270959700/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=4647691494270959700' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4647691494270959700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4647691494270959700'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/11/borland-delphi-codegear-delphi.html' title='Borland Delphi 不再，现在是 CodeGear Delphi！'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-1517452020590464177</id><published>2006-11-25T12:27:00.000+08:00</published><updated>2006-11-25T12:49:44.891+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 资讯'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>编程语言调查：28% 的人在使用 Delphi！</title><content type='html'>根据 &lt;a href="http://www.codeproject.com" target="_blank"&gt;CodeProject.com&lt;/a&gt; 上编程语言调查的当前情况，有 28% 的开发者使用 Delphi 谋生！&lt;br /&gt;&lt;br /&gt;注：此调查目前已结束。这儿是调查结果：&lt;a href="http://www.codeproject.com/script/survey/detail.asp?survey=613" target="_blank"&gt;http://www.codeproject.com/script/survey/detail.asp?survey=613&lt;/a&gt;。&lt;br /&gt;原文写作时调查结果是 25%，调查结束时，最终的调查结果是 28%。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/114/305447040_d1447b27e9_o.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;原文名称：Programming language poll: 25% are using Delphi!&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/b/a/257649.htm"&gt;http://delphi.about.com/b/a/257649.htm&lt;/a&gt;&lt;br /&gt;原文日期：2006-11-1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-1517452020590464177?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/1517452020590464177/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=1517452020590464177' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1517452020590464177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1517452020590464177'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/11/28-delphi.html' title='编程语言调查：28% 的人在使用 Delphi！'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-801947793471288301</id><published>2006-11-01T16:23:00.000+08:00</published><updated>2006-11-01T17:19:55.061+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='第三方组件'/><title type='text'>FastReport 4 发布！</title><content type='html'>FastReport 是一款 Borland Delphi/C++ Builder/BDS 下的报表制作工具，功能强大，在国内是 Delphi 下报表开发的首选工具，当前，最新的 FastReport 4 已发布了！&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fast-report.com/upload/iblock/7aa/7aa0227f749ee0dfa25e0eea78382c58.gif" target="_blank"&gt;&lt;img src="http://fast-report.com/upload/iblock/9e1/9e1dbf06d8b0cb75c4d1368ac40af6b5.gif" /&gt;&lt;/a&gt;&lt;a href="http://fast-report.com/upload/iblock/236/236559bae2782f77d8c2c41defb2fc9f.gif" target="_blank"&gt;&lt;img src="http://fast-report.com/upload/iblock/4d6/4d653c735ce73ef29da8f494fe6327fa.gif" /&gt;&lt;/a&gt;&lt;a href="http://fast-report.com/upload/iblock/479/47911963391987fdf6341db093ef42a4.gif" target="_blank"&gt;&lt;img src="http://fast-report.com/upload/iblock/012/01216c10dd11718ddb51cd0220d74744.gif" /&gt;&lt;/a&gt;&lt;a href="http://fast-report.com/upload/iblock/476/476009f268f2b2541f08621b40259109.gif" target="_blank"&gt;&lt;img src="http://fast-report.com/upload/iblock/4bd/4bd08178baefcc71d310fcdf4f5d5ee3.gif" /&gt;&lt;/a&gt;&lt;a href="http://fast-report.com/upload/iblock/a99/a99779d8388f2f64aad0dd4cf9e7136c.gif" target="_blank"&gt;&lt;img src="http://fast-report.com/upload/iblock/5a2/5a2a8af47ecebd48b45ea49715fd9a27.gif" /&gt;&lt;/a&gt;&lt;a href="http://fast-report.com/upload/iblock/a99/a99779d8388f2f64aad0dd4cf9e7136c.gif" target="_blank"&gt;&lt;img src="http://fast-report.com/upload/iblock/746/746dfe0b2c14446cddb2ce794d377582.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以下为 FastReport 4 功能特性：&lt;br /&gt;&lt;br /&gt;Report Designer:&lt;br /&gt;- new XP-style interface&lt;br /&gt;- the "Data" tab with all report datasets&lt;br /&gt;- ability to draw diagrams in the "Data" tab&lt;br /&gt;- code completion (Ctrl+Space)&lt;br /&gt;- breakpoints&lt;br /&gt;- watches&lt;br /&gt;- report templates&lt;br /&gt;- local guidelines (appears when you move or resize an object)&lt;br /&gt;- ability to work in non-modal mode, mdi child mode&lt;br /&gt;&lt;br /&gt;Report Preview:&lt;br /&gt;- thumbnails&lt;br /&gt;&lt;br /&gt;Print:&lt;br /&gt;- split a big page to several small pages&lt;br /&gt;- print several small pages on one big&lt;br /&gt;- print a page on a specified sheet (with scale)&lt;br /&gt;- duplex handling from print dialogue&lt;br /&gt;- print copy name on each printed copy (for example, "First copy", "Second copy")&lt;br /&gt;&lt;br /&gt;Report Core:&lt;br /&gt;- "endless page" mode&lt;br /&gt;- images handling, increased speed&lt;br /&gt;- the "Reset page numbers" mode for groups&lt;br /&gt;- reports crypting (Rijndael algorithm)&lt;br /&gt;- report inheritance (both file-based and dfm-based)&lt;br /&gt;- drill-down groups&lt;br /&gt;- frxGlobalVariables object&lt;br /&gt;- "cross-tab" object enhancements:&lt;br /&gt;- improved cells appearance&lt;br /&gt;- cross elements visible in the designer&lt;br /&gt;- fill corner (ShowCorner property)&lt;br /&gt;- side-by-side crosstabs (NextCross property)&lt;br /&gt;- join cells with the same value (JoinEqualCells property)&lt;br /&gt;- join the same string values in a cell (AllowDuplicates property)&lt;br /&gt;- ability to put an external object inside cross-tab&lt;br /&gt;- AddWidth, AddHeight properties to increase width&amp;height of the cell&lt;br /&gt;- AutoSize property, ability to resize cells manually&lt;br /&gt;- line object can have arrows&lt;br /&gt;- added TfrxPictureView.FileLink property (can contain variable or a file name)&lt;br /&gt;- separate settings for each frame line (properties Frame.LeftLine, TopLine, RightLine, BottomLine can be set in the object inspector)&lt;br /&gt;- PNG images support (uncomment {$DEFINE PNG} in the frx.inc file)&lt;br /&gt;- Open Document Format for Office Applications (OASIS) exports, spreadsheet (ods) and text (odt)&lt;br /&gt;&lt;br /&gt;Enterprise components:&lt;br /&gt;- Users/Groups security support (see a demo application Demos\ClientServer\UserManager)&lt;br /&gt;- Templates support&lt;br /&gt;- Dynamically refresh of configuration, users/groups&lt;br /&gt;&lt;br /&gt;官方主页：&lt;a href="http://www.fast-report.com"&gt;http://www.fast-report.com&lt;/a&gt;&lt;br /&gt;试用下载：&lt;a href="http://fast-report.com/en/download/fast-report-4-download.html"&gt;http://fast-report.com/en/download/fast-report-4-download.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-801947793471288301?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/801947793471288301/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=801947793471288301' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/801947793471288301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/801947793471288301'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/11/fastreport-4.html' title='FastReport 4 发布！'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-6027839681111794746</id><published>2006-10-23T13:26:00.000+08:00</published><updated>2006-10-23T14:35:26.938+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='第三方组件'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>7 个非常好的免费 Delphi 组件集</title><content type='html'>你是否在寻找一些免费且多功能的 Delphi 组件为你的程序添加更强的功能？不用再寻找了，下面列出了在互联网上最好的一些 Delphi 组件，他们可是免费并且包含所有源代码的。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(1)JEDI - VCL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;JEDI-VCL(JVCL) 库构建于 JEDI 社区捐赠的代码。他由超过 400 个可以在你的 Delphi 和 Kylix 项目中立即重用的组件构成。整个 JEDI VCL 在 Mozilla 公共许可证（MPL）条款下分发，他可以自由使用于免费软件和共享软件，以及开放源代码工程和商业项目。&lt;br /&gt;&lt;br /&gt;网站：&lt;a href="http://jvcl.sourceforge.net"&gt;http://jvcl.sourceforge.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(2)RXLib&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;RxLib 是用于 Borland Delphi 和 C++ Builder 的一整套组件集，他们可以构建灵活和丰富的用户界面，最重要的一点是他们完全免费。&lt;br /&gt;&lt;br /&gt;网站：&lt;a href="http://sourceforge.net/projects/rxlib"&gt;http://sourceforge.net/projects/rxlib&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(3)LMD Tools - Special Edition（特别版）&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;LMD Tools 的免费版，将近 100 个组件，绝对免费。&lt;br /&gt;&lt;br /&gt;网站：&lt;a href="http://www.lmdinnovative.com"&gt;http://www.lmdinnovative.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(4)Globus VCL Extensions Library(GVCL)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;一个用于 Borland Delphi 3-7 和Borland C++ Builder 5 的组件和函数库，所有单元都包含源代码。这个特定的库是一个免费软件产品，在不更改安装文件内容和单元源代码的情况下可自由分发使用这个库。&lt;br /&gt;&lt;br /&gt;网站：&lt;br /&gt;&lt;a href="http://cpr.biblio-globus.ru/GlobusLib.htm"&gt;http://cpr.biblio-globus.ru/GlobusLib.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.spellabs.ru/gvclen.htm"&gt;http://www.spellabs.ru/gvclen.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(5)Pro VCL Extensions Library(ProLib)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;用于 Borland Delphi 和 C++ Builder 的免费组件库，包含 28 个组件和几个有用的类、过程和函数。&lt;br /&gt;&lt;br /&gt;网站：&lt;a href="http://barabash.org/prolib/index.html"&gt;http://barabash.org/prolib/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(6)Max's Components for Delphi&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;15 个 Delphi 组件，全部包含源代码和帮助文件。&lt;br /&gt;&lt;br /&gt;网站：&lt;a href="http://www.maxcomponents.net"&gt;http://www.maxcomponents.net&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(7)About Delphi Programming VCL 集&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;超过 40 个组件，全部包含源代码。&lt;br /&gt;&lt;br /&gt;网站：&lt;a href="http://delphi.about.com/library/bluc/ucvcl.htm"&gt;http://delphi.about.com/library/bluc/ucvcl.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;原文名称：Top 7 Free Component Sets&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/toppicks/tp/aatpfreevclset.htm"&gt;http://delphi.about.com/cs/toppicks/tp/aatpfreevclset.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-6027839681111794746?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/6027839681111794746/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=6027839681111794746' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6027839681111794746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6027839681111794746'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/7-delphi.html' title='7 个非常好的免费 Delphi 组件集'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-6803925800126364355</id><published>2006-10-22T16:24:00.000+08:00</published><updated>2006-10-22T16:38:48.095+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>将 Delphi 组件 TWebBrowser 重设为空白页</title><content type='html'>Delphi 组件 TWebBrowser 允许在你的应用程序中显示 HTML 和一些 Web 化的文档。&lt;br /&gt;在代码中导航到一个文档使用 Navigate 方法。&lt;br /&gt;&lt;br /&gt;现在在窗体上，有一个 TWebBrowser 组件，命名为“WebBrowser1”,让其导航到 About Delphi Programming 中文版的主页你可以使用以下的代码行：&lt;br /&gt;&lt;blockquote&gt;webBrowser1.Navigate('http://delphi.about.com') ;&lt;/blockquote&gt;&lt;br /&gt;假如，因为一些原因，你不得不清除 Web 浏览器窗口，重新设置并显示一个空白页，你需要导航到一个空白页。&lt;br /&gt;&lt;br /&gt;以下的代码演示重设 TWebBrowser 让其显示一个空白页：&lt;br /&gt;&lt;blockquote&gt;webBrowser1.Navigate('about:blank') ;&lt;/blockquote&gt;&lt;br /&gt;原文名称：Reset the TWebBrowser Delphi control to an Empty (Blank) Page&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/od/adptips2006/qt/blankwebbrowser.htm"&gt;http://delphi.about.com/od/adptips2006/qt/blankwebbrowser.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-6803925800126364355?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/6803925800126364355/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=6803925800126364355' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6803925800126364355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6803925800126364355'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/delphi-twebbrowser.html' title='将 Delphi 组件 TWebBrowser 重设为空白页'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-4154798051682643457</id><published>2006-10-22T16:14:00.000+08:00</published><updated>2006-10-22T16:21:44.256+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>如何直接载入 HTML 到 WebBrowser</title><content type='html'>下面的代码演示如何载入一个字符串中的“静态”HTML 到一个 TWebBrowser 中：&lt;br /&gt;&lt;br /&gt;用法：简单地拖动一个 TWebBrowser 组件的实例到窗体上，在窗体的 OnCreate 事件中载入 HTML 代码：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string) ;&lt;br /&gt;var&lt;br /&gt;   sl: TStringList;&lt;br /&gt;   ms: TMemoryStream;&lt;br /&gt;begin&lt;br /&gt;   WebBrowser.Navigate('about:blank') ;&lt;br /&gt;   while WebBrowser.ReadyState &lt; READYSTATE_INTERACTIVE do&lt;br /&gt;    Application.ProcessMessages;&lt;br /&gt;&lt;br /&gt;   if Assigned(WebBrowser.Document) then&lt;br /&gt;   begin&lt;br /&gt;     sl := TStringList.Create;&lt;br /&gt;     try&lt;br /&gt;       ms := TMemoryStream.Create;&lt;br /&gt;       try&lt;br /&gt;         sl.Text := HTMLCode;&lt;br /&gt;         sl.SaveToStream(ms) ;&lt;br /&gt;         ms.Seek(0, 0) ;&lt;br /&gt;         (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)) ;&lt;br /&gt;       finally&lt;br /&gt;         ms.Free;&lt;br /&gt;       end;&lt;br /&gt;     finally&lt;br /&gt;       sl.Free;&lt;br /&gt;     end;&lt;br /&gt;   end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm1.FormCreate(Sender: TObject) ;&lt;br /&gt;var&lt;br /&gt;  sHTML : string;&lt;br /&gt;begin&lt;br /&gt;  sHTML := '&lt;a href="http://delphi.about.com"&gt;GOTO&lt;/a&gt;' +&lt;br /&gt;           '&lt;b&gt;About Delphi Programming&lt;/b&gt;';&lt;br /&gt;  WBLoadHTML(WebBrowser1,sHTML) ;&lt;br /&gt;end;&lt;/blockquote&gt;&lt;br /&gt;原文名称：How to load HTML directly to a WebBrowser&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/adptips2004/a/bltip0104_4.htm"&gt;http://delphi.about.com/cs/adptips2004/a/bltip0104_4.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-4154798051682643457?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/4154798051682643457/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=4154798051682643457' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4154798051682643457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4154798051682643457'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/html-webbrowser.html' title='如何直接载入 HTML 到 WebBrowser'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-1497337084584451284</id><published>2006-10-15T11:58:00.000+08:00</published><updated>2006-10-15T12:05:44.877+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>获取计算机名称和 Windows 用户名称</title><content type='html'>两个技巧：&lt;br /&gt;&lt;br /&gt;(1)确定运行你的程序的机器在网络上的名称；&lt;br /&gt;(2)获取当前使用机器的用户的名称。&lt;br /&gt;&lt;blockquote&gt;function GetComputerNetName: string;&lt;br /&gt;var&lt;br /&gt;  buffer: array[0..255] of char;&lt;br /&gt;  size: dword;&lt;br /&gt;begin&lt;br /&gt;  size := 256;&lt;br /&gt;  if GetComputerName(buffer, size) then&lt;br /&gt;    Result := buffer&lt;br /&gt;  else&lt;br /&gt;    Result := ''&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Function GetUserFromWindows: string;&lt;br /&gt;Var&lt;br /&gt;   UserName : string;&lt;br /&gt;   UserNameLen : Dword;&lt;br /&gt;Begin&lt;br /&gt;   UserNameLen := 255;&lt;br /&gt;   SetLength(userName, UserNameLen) ;&lt;br /&gt;   If GetUserName(PChar(UserName), UserNameLen) Then&lt;br /&gt;     Result := Copy(UserName,1,UserNameLen - 1)&lt;br /&gt;   Else&lt;br /&gt;     Result := 'Unknown';&lt;br /&gt;End;&lt;/blockquote&gt;&lt;br /&gt;原文名称：Get Computer Name, Get Windows User Name&lt;br /&gt;原文地址：http://delphi.about.com/cs/adptips2002/a/bltip0102_3.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-1497337084584451284?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/1497337084584451284/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=1497337084584451284' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1497337084584451284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1497337084584451284'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/windows_15.html' title='获取计算机名称和 Windows 用户名称'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-836541700612109383</id><published>2006-10-15T11:53:00.000+08:00</published><updated>2006-10-15T11:57:43.237+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>获取 EXE 文件版本信息</title><content type='html'>以下演示如何将获取一个可执行文件的版本信息，并将其放入 ListBox：&lt;br /&gt;&lt;blockquote&gt;{&lt;br /&gt;Usage:&lt;br /&gt;VersionInformation(ListBox1)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;{Pads or truncates a String and&lt;br /&gt;Justifies Left if StrJustify=True}&lt;br /&gt;Function StringPad(&lt;br /&gt;   InputStr,&lt;br /&gt;   FillChar: String;&lt;br /&gt;   StrLen: Integer;&lt;br /&gt;   StrJustify: Boolean): String;&lt;br /&gt;Var&lt;br /&gt;   TempFill: String;&lt;br /&gt;   Counter : Integer;&lt;br /&gt;Begin&lt;br /&gt;   If Not (Length(InputStr) = StrLen) Then&lt;br /&gt;   Begin&lt;br /&gt;     If Length(InputStr) &gt; StrLen Then&lt;br /&gt;     Begin&lt;br /&gt;       InputStr := Copy(InputStr,1,StrLen) ;&lt;br /&gt;     End&lt;br /&gt;     Else&lt;br /&gt;     Begin&lt;br /&gt;       TempFill := '';&lt;br /&gt;       For Counter := 1 To StrLen-Length(InputStr) Do&lt;br /&gt;       Begin&lt;br /&gt;         TempFill := TempFill + FillChar;&lt;br /&gt;       End;&lt;br /&gt;       If StrJustify Then&lt;br /&gt;       Begin&lt;br /&gt;         {Left Justified}&lt;br /&gt;         InputStr := InputStr + TempFill;&lt;br /&gt;       End&lt;br /&gt;       Else&lt;br /&gt;       Begin&lt;br /&gt;         {Right Justified}&lt;br /&gt;         InputStr := TempFill + InputStr ;&lt;br /&gt;       End;&lt;br /&gt;     End;&lt;br /&gt;   End;&lt;br /&gt;   Result := InputStr;&lt;br /&gt;End;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Function VersionInformation(&lt;br /&gt;   ListBox : TListBox): Boolean;&lt;br /&gt;const&lt;br /&gt;   InfoNum = 11;&lt;br /&gt;   InfoStr : array [1..InfoNum] of String =&lt;br /&gt;     ('CompanyName', 'FileDescription', 'FileVersion',&lt;br /&gt;'InternalName', 'LegalCopyright', 'LegalTradeMarks',&lt;br /&gt;'OriginalFilename', 'ProductName', 'ProductVersion',&lt;br /&gt;'Comments', 'Author') ;&lt;br /&gt;   LabelStr : array [1..InfoNum] of String =&lt;br /&gt;     ('Company Name', 'Description', 'File Version',&lt;br /&gt;'Internal Name', 'Copyright', 'TradeMarks',&lt;br /&gt;'Original File Name', 'Product Name',&lt;br /&gt;'Product Version', 'Comments', 'Author') ;&lt;br /&gt;var&lt;br /&gt;   S : String;&lt;br /&gt;   n, Len, j : Integer;&lt;br /&gt;   Buf : PChar;&lt;br /&gt;   Value : PChar;&lt;br /&gt;begin&lt;br /&gt;   Try&lt;br /&gt;     S := Application.ExeName;&lt;br /&gt;     ListBox.Items.Clear;&lt;br /&gt;     ListBox.Sorted := True;&lt;br /&gt;     ListBox.Font.Name := 'Courier New';&lt;br /&gt;     n := GetFileVersionInfoSize(PChar(S),n) ;&lt;br /&gt;     If n &gt; 0 Then Begin&lt;br /&gt;       Buf := AllocMem(n) ;&lt;br /&gt;       ListBox.Items.Add&lt;br /&gt;(StringPad('Size',' ',20,True)+' = '+IntToStr(n)) ;&lt;br /&gt;       GetFileVersionInfo(PChar(S),0,n,Buf) ;&lt;br /&gt;       For j:=1 To InfoNum Do Begin&lt;br /&gt;         If VerQueryValue(Buf,PChar('StringFileInfo\040904E4\'+&lt;br /&gt;                           InfoStr[j]),Pointer(Value),Len) Then&lt;br /&gt;         Begin&lt;br /&gt;           Value := PChar(Trim(Value)) ;&lt;br /&gt;           If Length(Value) &gt; 0 Then&lt;br /&gt;           Begin&lt;br /&gt;             ListBox.Items.Add&lt;br /&gt;(StringPad(labelStr,' ',20,True)+' = '+Value) ;&lt;br /&gt;           End;&lt;br /&gt;         End;&lt;br /&gt;       End;&lt;br /&gt;       FreeMem(Buf,n) ;&lt;br /&gt;     End&lt;br /&gt;     Else Begin&lt;br /&gt;       ListBox.Items.Add&lt;br /&gt;('No FileVersionInfo found') ;&lt;br /&gt;     End;&lt;br /&gt;     Result := True;&lt;br /&gt;   Except&lt;br /&gt;     Result := False;&lt;br /&gt;   End;&lt;br /&gt;End;&lt;/blockquote&gt;&lt;br /&gt;原文名称：Get EXE Version Information&lt;br /&gt;原文地址：http://delphi.about.com/cs/adptips2001/a/bltip0701_4.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-836541700612109383?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/836541700612109383/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=836541700612109383' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/836541700612109383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/836541700612109383'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/exe.html' title='获取 EXE 文件版本信息'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-6661047555320621696</id><published>2006-10-10T11:41:00.000+08:00</published><updated>2006-10-10T12:13:17.989+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='免费源代码(Free Source)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>Delphi 开源程序：TurboCash</title><content type='html'>TurboCash 是一个开源财务会计程序包。它是世界上第一个针对小型商业企业的完整功能开源财务会计程序包之一。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://z.about.com/d/delphi/1/0/l/_/turbocash.gif"/&gt;&lt;br /&gt;&lt;br /&gt;TurboCash 包含商业企业永远需要的大多数功能：债务人、债权人、总帐、股票管理、增值税、发票、银行对帐单、会计试算表、资产负债表和损益表，完整的报表和分析，并且兼容多企业和多用户管理。TurboCash 财务会计程序非常灵活，它可以配置成适应任何国家地区和任何小型商业企业。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.turbocashuk.com/source-code-download.html"&gt;下载 TurboCash&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.turbocashuk.com/"&gt;访问 TurboCash 主页&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;原文名称：Turbo Cash - Open Source code Delphi Application&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/od/fullcodeprojects/ss/turbocash.htm"&gt;http://delphi.about.com/od/fullcodeprojects/ss/turbocash.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-6661047555320621696?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/6661047555320621696/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=6661047555320621696' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6661047555320621696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6661047555320621696'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/delphi-turbocash.html' title='Delphi 开源程序：TurboCash'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-3628910905732753426</id><published>2006-10-10T11:31:00.000+08:00</published><updated>2006-10-10T11:35:06.706+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>是否已连接到 Internet ？</title><content type='html'>下面的代码用来检查是否已连接到 Internet ：&lt;br /&gt;&lt;blockquote&gt;procedure TForm1.Button1Click(Sender: TObject) ;&lt;br /&gt;&lt;br /&gt;  function FuncAvail(_dllname, _funcname: string;&lt;br /&gt;                     var _p: pointer): boolean;&lt;br /&gt;  {return True if _funcname exists in _dllname}&lt;br /&gt;  var _lib: tHandle;&lt;br /&gt;  begin&lt;br /&gt;   Result := false;&lt;br /&gt;   if LoadLibrary(PChar(_dllname)) = 0 then exit;&lt;br /&gt;   _lib := GetModuleHandle(PChar(_dllname)) ;&lt;br /&gt;   if _lib &lt;&gt; 0 then begin&lt;br /&gt;    _p := GetProcAddress(_lib, PChar(_funcname)) ;&lt;br /&gt;    if _p &lt;&gt; NIL then Result := true;&lt;br /&gt;   end;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  {&lt;br /&gt;  Call SHELL32.DLL for Win &lt; Win98&lt;br /&gt;  otherwise call URL.dll&lt;br /&gt;  }&lt;br /&gt;  {button code:}&lt;br /&gt;  var&lt;br /&gt;   InetIsOffline : function(dwFlags: DWORD):&lt;br /&gt;                   BOOL; stdcall;&lt;br /&gt;  begin&lt;br /&gt;   if FuncAvail('URL.DLL', 'InetIsOffline',&lt;br /&gt;                @InetIsOffline) then&lt;br /&gt;    if InetIsOffLine(0) = true&lt;br /&gt;     then ShowMessage('Not connected')&lt;br /&gt;     else ShowMessage('Connected!') ;&lt;br /&gt;  end;&lt;/blockquote&gt;原文名称：Are we connected to the Internet?&lt;br /&gt;原文地址:&lt;a href="http://delphi.about.com/cs/adptips2000/a/bltip1100_4.htm"&gt;http://delphi.about.com/cs/adptips2000/a/bltip1100_4.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-3628910905732753426?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/3628910905732753426/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=3628910905732753426' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/3628910905732753426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/3628910905732753426'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/internet.html' title='是否已连接到 Internet ？'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-5284477536660266431</id><published>2006-10-10T11:24:00.000+08:00</published><updated>2006-10-10T11:29:56.355+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>无需安装使用 TTF 字体</title><content type='html'>以下代码演示无需在 Windows 中安装，即可在你的程序中使用 TTF（True Type）字体：&lt;br /&gt;&lt;blockquote&gt;{First load it in the OnCreate event of a form):&lt;br /&gt;procedure TForm1.FormCreate(Sender: TObject) ;&lt;br /&gt;begin&lt;br /&gt;  AddFontResource('c:\FONTS\MyFont.TTF') ;&lt;br /&gt;  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;{Before application terminates we must free it:}&lt;br /&gt;procedure TForm1.FormClose&lt;br /&gt;   (Sender: TObject; var Action: TCloseAction) ;&lt;br /&gt;begin&lt;br /&gt;  RemoveFontResource('C:\FONTS\MyFont.TTF') ;&lt;br /&gt;  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;&lt;br /&gt;end;&lt;/blockquote&gt;原文名称：Use TTF without Installing&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/adptips2000/a/bltip1100_3.htm"&gt;http://delphi.about.com/cs/adptips2000/a/bltip1100_3.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-5284477536660266431?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/5284477536660266431/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=5284477536660266431' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5284477536660266431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5284477536660266431'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/ttf.html' title='无需安装使用 TTF 字体'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-6042310810614754924</id><published>2006-10-10T11:18:00.000+08:00</published><updated>2006-10-10T11:21:40.102+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>获得 Windows 版本</title><content type='html'>以下代码演示如何在代码中检查 Windows 版本:&lt;br /&gt;&lt;blockquote&gt;type&lt;br /&gt;   TWin32Version = (wvUnknown,&lt;br /&gt;                    wvWin95,&lt;br /&gt;                    wvWin98,&lt;br /&gt;                    wvWinNT,&lt;br /&gt;                    wvWin2000) ;&lt;br /&gt;&lt;br /&gt;function GetWinVersion: TWin32Version;&lt;br /&gt;begin&lt;br /&gt;   Result := wvUnknown;&lt;br /&gt;   if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then&lt;br /&gt;     if (Win32MajorVersion &gt; 4) or&lt;br /&gt;        ((Win32MajorVersion = 4) and&lt;br /&gt;        (Win32MinorVersion &gt; 0)) then&lt;br /&gt;       Result := wvWin98&lt;br /&gt;     else&lt;br /&gt;       Result := wvWin95&lt;br /&gt;   else&lt;br /&gt;     if Win32MajorVersion &lt;= 4 then&lt;br /&gt;       Result := wvWinNT&lt;br /&gt;     else&lt;br /&gt;       if Win32MajorVersion = 5 then&lt;br /&gt;         Result := wvWin2000&lt;br /&gt;end;&lt;/blockquote&gt;&lt;br /&gt;原文名称：Get Windows Version&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/adptips2000/a/bltip1100_2.htm"&gt;http://delphi.about.com/cs/adptips2000/a/bltip1100_2.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-6042310810614754924?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/6042310810614754924/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=6042310810614754924' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6042310810614754924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6042310810614754924'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/windows.html' title='获得 Windows 版本'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-6220491435067399112</id><published>2006-10-05T16:53:00.000+08:00</published><updated>2006-10-05T17:06:45.314+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>如何更改 TProgressBar 的颜色</title><content type='html'>Delphi 组件 TProgressBar 显示一个进度条。进度条可对应用程序中的某一过程的处理进度提供一个可视化的反馈。&lt;br /&gt;&lt;br /&gt;根据设计，进度条的颜色取决于 Windows。下面的代码演示如何在运行时更改 TProgressBar 的背景颜色和进度块的颜色。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://z.about.com/d/delphi/1/0/R/B/progressbarcolor.gif"/&gt;&lt;br /&gt;&lt;blockquote&gt;uses CommCtrl, ...&lt;br /&gt;...&lt;br /&gt;// Set Background color&lt;br /&gt;ProgressBar1.Brush.Color := clRed;&lt;br /&gt;// Set Bar color&lt;br /&gt;SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, clBlue) ;&lt;/blockquote&gt;原文名称：How to Change the Colors of the TProgressBar&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/od/adptips2006/qt/colorbar.htm"&gt;http://delphi.about.com/od/adptips2006/qt/colorbar.htm&lt;/a&gt;&lt;br /&gt;源码下载：&lt;a href="http://delphi.about.com/library/weekly/code/progressbarcolor.zip"&gt;http://delphi.about.com/library/weekly/code/progressbarcolor.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-6220491435067399112?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/6220491435067399112/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=6220491435067399112' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6220491435067399112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6220491435067399112'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/tprogressbar.html' title='如何更改 TProgressBar 的颜色'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-1642796877295140180</id><published>2006-10-05T16:36:00.000+08:00</published><updated>2006-10-05T16:41:06.989+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>捕获最大化和最小化菜单按钮的单击</title><content type='html'>如果你想要用户最大化或最小化一个 Delphi 窗体时有所反应，使用下面的代码：&lt;br /&gt;&lt;blockquote&gt;...&lt;br /&gt;public&lt;br /&gt;   procedure WMSysCommand&lt;br /&gt;     (var Msg: TWMSysCommand) ;&lt;br /&gt;message WM_SYSCOMMAND;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;...&lt;br /&gt;procedure TForm1.WMSysCommand;&lt;br /&gt;begin&lt;br /&gt;   if (Msg.CmdType = SC_MINIMIZE) or&lt;br /&gt;      (Msg.CmdType = SC_MAXIMIZE) then&lt;br /&gt;   MessageBeep(0) ;&lt;br /&gt;   &lt;br /&gt;   DefaultHandler(Msg) ;&lt;br /&gt;end;&lt;/blockquote&gt;&lt;br /&gt;原文名称：Capture Maximize/Minimize Menu button click&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/adptips1999/a/bltip0999_4.htm"&gt;http://delphi.about.com/cs/adptips1999/a/bltip0999_4.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-1642796877295140180?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/1642796877295140180/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=1642796877295140180' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1642796877295140180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1642796877295140180'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/blog-post_6580.html' title='捕获最大化和最小化菜单按钮的单击'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-1452440561123361759</id><published>2006-10-05T16:07:00.000+08:00</published><updated>2006-10-05T16:13:43.294+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>隐藏标题栏</title><content type='html'>一个快速隐藏你的程序标题栏的方法：&lt;br /&gt;&lt;blockquote&gt;procedure TForm1.FormCreate(Sender: TObject) ;&lt;br /&gt;begin&lt;br /&gt;   SetWindowLong( Handle,&lt;br /&gt;     GWL_STYLE,&lt;br /&gt;     GetWindowLong( Handle, GWL_STYLE )&lt;br /&gt;     and not WS_CAPTION ) ;&lt;br /&gt;   ClientHeight := Height;&lt;br /&gt;end;&lt;/blockquote&gt;&lt;br /&gt;原文名称：Hide Title Bar&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/adptips2000/a/bltip0100_5.htm"&gt;http://delphi.about.com/cs/adptips2000/a/bltip0100_5.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-1452440561123361759?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/1452440561123361759/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=1452440561123361759' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1452440561123361759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/1452440561123361759'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/blog-post_05.html' title='隐藏标题栏'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-5775159134642663157</id><published>2006-10-03T13:57:00.000+08:00</published><updated>2006-10-04T13:40:35.558+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>如何使用 Delphi 组件 TXMLDocument 建立 !DocType 和 ?XML 元件</title><content type='html'>Delphi 的 TXMLDocument 组件常被用于读取并处理一个已经存在的 XML 文档，或者构建一个新的空白 XML 文档。&lt;br /&gt;&lt;br /&gt;要给 XML 添加节点，你可以使用 AddChild 方法或者是 CreateElement 方法，他们的返回结果是 IXMLNode 接口，然后你可以利用此接口添加枝叶节点、应用属性，等等等等。&lt;br /&gt;&lt;br /&gt;有效合法的 XML 的必要条件之一是，它提供一个"&amp;lt;!DOCTYPE ... &amp;gt;"（文档类型声明）元件和"&amp;lt;?xml ... &amp;gt;"元件。&lt;br /&gt;&lt;br /&gt;不幸的是，Delphi TXMLDocument 组件的实现，基本上使用的是微软 XML 解析器（Microsoft XML Parser），没有提供添加“ntDocType”（TNodeType 类型）节点的方法。&lt;br /&gt;&lt;br /&gt;这个问题的解决方案之一是，通过访问 TXMLDocument 的 XML 属性，手动添加必需的节点，XML 属性实际上是一个 TStrings 对象。&lt;br /&gt;&lt;br /&gt;首先，使用 AddChild 方法构建你的 XML 文档。&lt;br /&gt;&lt;br /&gt;其次，把 XML 结果赋值给一个 TStringList 对象。然后使用 TStringList 的方法（如 Insert、Add）添加附加的“元件”和“节点”到 XML 字符串。&lt;br /&gt;&lt;br /&gt;最后，将包含在 TStringList 中的 XML 保存到一个文件。&lt;br /&gt;&lt;br /&gt;这儿是例子：&lt;br /&gt;&lt;blockquote&gt;var&lt;br /&gt;   sl : TStringList;&lt;br /&gt;   xmlDoc : TXMLDocument;&lt;br /&gt;   iNode : IXMLNode;&lt;br /&gt;begin&lt;br /&gt;   xmlDoc := TXMLDocument.Create(nil) ;&lt;br /&gt;   try&lt;br /&gt;     xmlDoc.Active := true;&lt;br /&gt;&lt;br /&gt;     iNode := xmlDoc.AddChild('leaf') ;&lt;br /&gt;     iNode.Attributes['attrib1'] := 'value1';&lt;br /&gt;     iNode.Text := 'Node Text';&lt;br /&gt;&lt;br /&gt;     sl := TStringList.Create;&lt;br /&gt;     try&lt;br /&gt;       sl.Assign(xmlDoc.XML) ;&lt;br /&gt;&lt;br /&gt;       sl.Insert(0,'&amp;lt;!DOCTYPE ns:mys SYSTEM &amp;quot;myXML.dtd&amp;quot;&amp;gt;') ;&lt;br /&gt;       sl.Insert(0,'&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;') ;&lt;br /&gt;&lt;br /&gt;       sl.SaveToFile('c:\Test.xml') ;&lt;br /&gt;     finally&lt;br /&gt;       sl.Free;&lt;br /&gt;     end;&lt;br /&gt;&lt;br /&gt;   finally&lt;br /&gt;     xmlDoc := nil;&lt;br /&gt;   end;&lt;br /&gt;end;&lt;br /&gt;&lt;/blockquote&gt;这儿是 XML 结果：&lt;br /&gt;&lt;blockquote&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE ns:mys SYSTEM "myXML.dtd"&amp;gt;&lt;br /&gt;&amp;lt;leaf attrib1="value1"&amp;gt;Node Text&amp;lt;/leaf&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;原文名称：How to Create the !DocType and ?XML Elements using TXmlDocument Delphi component&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/od/adptips2006/qt/doctype_txmldoc.htm"&gt;http://delphi.about.com/od/adptips2006/qt/doctype_txmldoc.htm&lt;/a&gt;&lt;br /&gt;原文日期：2006-10-2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-5775159134642663157?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/5775159134642663157/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=5775159134642663157' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5775159134642663157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/5775159134642663157'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/delphitxmldocumentdoctypexml.html' title='如何使用 Delphi 组件 TXMLDocument 建立 !DocType 和 ?XML 元件'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-4456292034764186449</id><published>2006-10-02T20:26:00.000+08:00</published><updated>2006-10-02T20:38:08.645+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>启用或禁用桌面图标</title><content type='html'>以下代码演示如何启用或禁用桌面上的所有对象：&lt;br /&gt;&lt;blockquote&gt;{Disable:}&lt;br /&gt;EnableWindow(FindWindowEx(FindWindow('Progman', nil), HWND(0), 'ShellDll_DefView', nil), FALSE) ;&lt;br /&gt;&lt;br /&gt;{Enable:}&lt;br /&gt;EnableWindow(FindWindowEx(FindWindow('Progman', nil), HWND(0), 'ShellDll_DefView', nil), TRUE) ;&lt;br /&gt;&lt;/blockquote&gt;原文名称：Enable/Disable Desktop icons&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/adptips2000/a/bltip1000_5.htm"&gt;http://delphi.about.com/cs/adptips2000/a/bltip1000_5.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-4456292034764186449?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/4456292034764186449/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=4456292034764186449' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4456292034764186449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/4456292034764186449'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/blog-post.html' title='启用或禁用桌面图标'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-7766684268000657302</id><published>2006-10-02T13:27:00.000+08:00</published><updated>2006-10-02T13:30:56.235+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技巧和决窍(Tips and Tricks)'/><category scheme='http://www.blogger.com/atom/ns#' term='翻译'/><title type='text'>获得 RichEdit 行号</title><content type='html'>没错，TRichEdit 缺少这个功能。你可以通过使用一个 Windows 消息获得光标所在位置的行号（RichEdit 命名为 REdit）：&lt;br /&gt;&lt;blockquote&gt;REdit.Perform(EM_LINEFROMCHAR, REdit.SelStart, 0);&lt;/blockquote&gt;以上语句将返回行号。同样有一个 Windows 消息（EM_CHARFROMPOS）返回屏幕指标坐标所在的字符位置。查看 Windows 帮助文件可获得此方面的更多信息。注意，这些功能都十分缓慢，不应该在频繁调用的循环内部使用。&lt;br /&gt;&lt;br /&gt;原文名称：Get the Line Number from a RichEdit&lt;br /&gt;原文地址：&lt;a href="http://delphi.about.com/cs/adptips2000/a/bltip1000_4.htm"&gt;http://delphi.about.com/cs/adptips2000/a/bltip1000_4.htm&lt;/a&gt;&lt;br /&gt;原文日期：2006-10-1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-7766684268000657302?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/7766684268000657302/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=7766684268000657302' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/7766684268000657302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/7766684268000657302'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/trichedit.html' title='获得 RichEdit 行号'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3399501599103851137.post-6582614557966469501</id><published>2006-10-01T11:43:00.000+08:00</published><updated>2006-10-01T11:44:37.163+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='站内新闻'/><title type='text'>About Delphi Programming 中文版上线了！</title><content type='html'>&lt;p&gt;2006年10月1日，"About Delphi Programming 中文版" 上线了！&lt;br /&gt;本站主要发表 About Delphi Programming（&lt;a href="http://delphi.about.com/"&gt;http://delphi.about.com/&lt;/a&gt;）英文网站文章中译版以及 Borland Delphi 开发工具的相关资讯。&lt;br /&gt;&lt;br /&gt;Welcome!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3399501599103851137-6582614557966469501?l=aboutdelphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aboutdelphi.blogspot.com/feeds/6582614557966469501/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3399501599103851137&amp;postID=6582614557966469501' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6582614557966469501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3399501599103851137/posts/default/6582614557966469501'/><link rel='alternate' type='text/html' href='http://aboutdelphi.blogspot.com/2006/10/about-delphi-programming-chinese.html' title='About Delphi Programming 中文版上线了！'/><author><name>netrobo</name><uri>http://www.blogger.com/profile/04034150904614813760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
