能否先介绍一下Delphi 6以及DBExpress的东东(谢绝英文)

猪仔庆 2001-05-11 01:10:00
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
woolgate 2001-06-07
  • 打赏
  • 举报
回复
给点分吧!
woolgate 2001-06-07
  • 打赏
  • 举报
回复
您请参阅http://community.borland.com/article/0,1410,27318,00.html
Delphi 图解
woolgate 2001-06-07
  • 打赏
  • 举报
回复
爽死你,累死你!

Windows 原生开发工具的瑰宝 - Delphi 6

在睽违了将近2年之后,Borland的年度巨献Delphi 6终于将在世人的面前揭开神秘的
面纱。Delphi 6不但对于Borland来说是一个重要的产品,事实上对于现在的窗口平台
也是一个意义重大的产品。因为当Microsoft全力发展.NET虚拟环境,而Borland本身
也往Linux平台上开发RAD工具Kylix的时候,由Borland窗口开发小组所研发的原生视
窗开发工具正好填补了仍占多数窗口程序员的需要。
由于信息技术不断的快速进步,许多窗口程序员也不断的需要在应用系统中加入最
新的技术,或是使用这些新的技术开发下一代的应用系统。例如XML/XSL的盛行,
让程序员对于如何处理和发挥XML的技术有强烈的需求,例如SOAP的逐渐成为远程
和分布式计算的标准,因此程序员也需要使用SOAP来开发或是整合应用系统。更别
说由SOAP和WSDL/WSML,UDDI等技术所衍生出的最新Web应用系统标准Web
Service等。对于窗口平台上的程序员而言,即使是使用现在的开发工具,例如Delphi
4/5或是VB等也仍然可以利用这些新的信息技术开发应用程序,但是如此做不但有一
定的难度,而且可能旷废时日。
Delphi 6刚好可以帮助企业和程序员解决这些信息技术上的困扰,Delphi 6不但在传统

的开发能力方面持续的进步,让程序员能够享有更具生产力的开发环境,对于最新
的信息技术,例如XML/XSL,SOAP,Web Service等都有非常良好的支持,让程序员
能够快速的使用这些新的技术。此外Delphi 6在核心执行时期函式馆以及编译器方面
也有了幅度不小的改善,不但让程序员可以开发功能更强的窗口应用程序,也可以
更平顺的移植到Linux平台,再搭配跨2平台的新可视化组件Framework CLX,即使是
窗口的程序员也可以快速的开发Linux平台上的应用系统。
现在就让我们赶快仔细的看看Delphi 6在各方面提供了什么功能,到底值不值得窗口
的程序员使用她来开发窗口的应用程序吧。
强化的Delphi整合发展环境
就如同以往Delphi的每一个新版本惯例一样,Delphi 6也持续的改善整合发展环境,
帮助程序员更有生产力。Delphi 6在整合发展环境中加入了数项致命的吸引力,让程
式师对这些新的功能爱不释手。下面就简单的介绍这些新的整合发展环境功能。
Code Complete
Code Complete的功能在Delphi 5就已经加入了,这项功能非常受到程序员的欢迎,因
为Code Complete可以大幅的减少程序员需要键入的程序代码,并且减少打错的机率。
Delphi 6的Code Complete功能又持续的加码改善,新的Code Complete窗口不但可以由

程序员自行调整大小,以及以不同的颜色代表不同的对象,例如变量,方法和特性
等。
Delphi 6的Code Complete窗口加入了色彩分析,以及对象分门别类的能力
此外新的Code Complete窗口也会更聪明的过滤器对象能够使用的PME,避免了以往
Delphi 5的Code Complete窗口无法显示一些PME的困窘情形。最后如果程序员在新的
Code Complete窗口中选择了呼叫方法之后,Code Complete现在也会自动的在方法名
称之后自动加入();字符,把光标自动停在圆括号之中,并且自动显示这个方法需要
的所有参数,的确比以前更聪明和方便了。
Object TreeView
另外一个新的功能就是Delphi 6的Object TreeView窗口,这个新的窗口可以除了可以
显示窗体中所有的对象之外,也以阶层的方式表达组件之间拥有者的关系。而当程
式师在Object TreeView窗口中点选了一个组件之后,这个组件也会立刻的出现在对象
检视器之中让程序员可以改变这个对象的特性值和事件处理函式。
本来当我一开始使用Delphi 6时,总是喜欢把Object TreeView窗口关闭,总觉得她占
据了整合发展环境的空间,又没有什么作用。但是稍后才发现她的好处,特别是当
窗体复杂,拥有大量的组件时,Object TreeView窗口可以让你立刻的找到这个组件,
并且知道和她相关的组件,非常的方便。这比以往我使用对象检视器辛辛苦苦的搜
寻组件好多了。
Delphi 6的Object TreeView窗口可以让程序员快速找到窗体中的任何对象
此外Delphi 6的编辑器也强化了Class Complete的功能,让程序员拥有更大的弹性定义

类别程序代码。并且加入了Interface Complete的功能,让程序员在撰写接口程序代码
时也
能够享有Code Complete的功能。
可客制化的View窗口
Delphi 6最强劲的整合发展环境功能应该要算是新的可客制化的View窗口了,在
Delphi 6中,编辑器不但可以让程序员观看和编辑Object Pascal的程序代码,如果程序

现在编辑的是Web应用程序,那么也可以直接在编辑器中检视HTML程序代码,稿本语
言程序代码,预览Web应用程序执行的结果画面,以及Web应用程序产生的真正HTML
程序代码。请仔细观看本文第一个图形的下方,熟悉Delphi的程序员应该会注意到编辑

器的下方多了数个页次,例如HTML Result,Preview等,这些页次就是可客制化的
View窗口。
除了刚才介绍的可客制化的View窗口之外,Delphi 6的编辑器也可以让程序员直接检
视XML和XSL的树状架构,更允许程序员自行开发客制化的View窗口整合到Delphi的
编辑器之中,可以说功能非常的强大,稍后在介绍Delphi 6的Web功能时,Delphi的程
式师便可以知道她的威力。
新一代资料存取引擎-dbExpress
Borland为了让窗口平台的Delphi以及Linux平台上的Kylix有着共通的资料存取引擎,
因此决定开发新一代的资料存取引擎,那就是dbExpress。DbExpress是一组存取各种
不同关连数据库的原生驱动程序,以及以组统一的组件。由于原生驱动程序和组件
都是以跨平台的考量开发的,因此Delphi和Kylix都可以使用这组驱动程序和组件。程
式师藉由统一的组件来存取不同的数据库,以方便开发数据库应用系统,下图就是
Delphi 6的dbExpress组件组。
Delphi 6的dbExpress组件组
在4月的RUN!PC的Kylix介绍一文中我已经介绍过dbExpress,因此在本文只简单的介
绍dbExpress的功能。
基本上dbExpress是使用所谓的Firehose引擎来存取资料,并且把异动资料的工作交给
MIDAS(MIDAS在Delphi 6中将改名为DataSnap)下图便是DBExpress结合Firehose和
MIDAS的功能示意图。
dbExpress的核心是数个简洁的接口(Interface)组成的,这些接口定义了如何跟特定的

数据库厂商接口沟通的ISQLDriver,如何连结数据库的ISQLConnection,如何对资料
来源下达命令的ISQLCommand,如何控制Cursor的ISQLCursor,以及存取数据库
MetaData的ISQLMetaData。这些接口定义的目标就是简易,有效率,它们和Java的
JDBC有非常类似的观念,但是Borland又提供了MIDAS来巧妙的结合这些接口,因此
提供了比JDBC高上数倍的生产力。
虽然dbExpress在Kylix中是1.0的版本,而在Delphi 6中则是1.x的版本,意谓Borland又

修正和改善了Kylix中的dbExpress。但是dbExpress的执行速度却已经和开发多年的
BDE/IDAPI有着几乎一样的表现,丝毫不逊色,甚至有许多项目还比BDE/IDAPI表现
得更好。例如下图是dbExpress和BDE/IDAPI在连结InterBase的表现,从下面的资料中
可以看出dbExpress还略胜一筹。
开启数据库 dbExpress BDE
时间 1.467 1.831
此外我还写了一些测试程序,让dbExpress和BDE/IDAPI随机产生资料,并且异动到资
料库之中。下面便是执行测试的结果,从这些数据中我们可以看出dbExpress和
BDE/IDAPI几乎是不分上下的。
新增资料笔数 dbExpress BDE
10 0.052 0.036
100 0.334 0.342
1000 3.186 3.421
2000 6.514 6.732
10000 37.992 36.109
不过dbExpress更吸引人的地方是如果程序员知道如何微调它的话,那么它几乎可以
使用闪电般的速度处理资料。例如下面的资料便是经过我调整之后的dbExpress和
BDE/IDAPI比较处理资料的结果。从这些数据中我们可以看到调整之后的dbExpress几
乎以快3倍的速度在处理资料,把BDE/IDAPI远远的拋在后面。看到这样的结果,真
不禁今人佩服Borland开发dbExpress的功力。
新增资料笔数 dbExpress BDE 改良的dbExpress
10 0.052 0.036 0.047
100 0.334 0.342 0.206
1000 3.186 3.421 1.19
2000 6.514 6.732 2.686
10000 37.992 36.109 17.472
dbExpress除了在异动资料的速度方面超过BDE/IDAPI,在查询资料方面也是大幅领先
BDE/IDAPI。例如下表是分别使用dbExpress和BDE/查询大量随机资料的结果,
dbExpress在这一方面也以3倍的时间胜出BDE。从各种数据显示,dbExpress在各种处
理资料的工作方面几乎都遥遥领先已经发展数年之久的BDE/IDAPI。
查询大量资料
dbExpress 1.215
BDE 4.826
最佳化后的 BDE 3.171
除了dbExpress之外,Delphi 6仍然内附了最新的BDE/IDAPI,它包含了臭虫修正以及
新的DB2驱动程序。此外也仍然包含ADOExpress,ADOExpress除了修正了许多臭虫
之外,也加入了一些新的功能,最重要的是ADOExpress终于改正了在开发
Master/Detail型态的应用程序会碰到的问题,这应该可以让许多程序员感到满意,不
过Delphi 6的ADOExpress在Beta 4之中仍然是以MDAC 2.1版为基础,并没有升级到最
新的2.7版,不知道Borland是否会在最后阶段完成升级的工作。
更好的COM+支持功能
Delphi 6在支持COM/MTS/COM+对象方面又再次的进行了加强的工作,除了在Type
Library编辑器增加功能之外,对于实作COM对象方面也加入了最新支持Neutral执行
绪模型的实作。例如下图显示了当我开发COM对象时,可以选择各种执行绪模型型
态的COM对象。
Delphi 6允许程序员建立各种执行绪模型的COM对象,包括了最新的Neutral型态
的COM对象
此外当程序员需要实作特定的COM接口方法时,再也不需要像以往一样辛苦的宣告
并且实作COM接口。Delphi 6的COM精灵可以让程序员自由选择要实作的COM接口,
然后帮助程序员自动产生所有的接口宣告程序代码。例如下图是我要实作IActiveMovie

接口时,可以激活Delphi 6的COM精灵,从接口选择精灵对话盒中选择IActiveMovie
接口,然后Delphi 6便会在编辑器中自动产生所有IActiveMovie接口的宣告程序代码,
使
用接口精灵的好处是程序员不但更方便,而且在宣告接口定义时也不会出错。
Delphi 6 的COM精灵可以帮助程序员自动宣告任何COM接口以及COM接口之中的
方法
type
TIDelphi6 = class(TAutoObject, AccessObject)
protected
function Get__Name: WideString; safecall;
function Get_Attributes: Integer; safecall;
function Get_FullName: WideString; safecall;
function Get_IsLoaded: WordBool; safecall;
function Get_Name: WideString; safecall;
function Get_Parent: IDispatch; safecall;
function Get_Properties: AccessObjectProperties; safecall;
function Get_Type_: Integer; safecall;
{ Protected declarations }
end;
除了一般的COM对象之外,Delphi 6在支持MTS/COM+方面也以新的Transaction Object
和Transactional Data Module来取代以前的MTS Object和MTS Data Module,让程序员

以更方便的开发Microsoft DNA架构的应用系统。
Delphi 6以Transactional Object和Transactional Data Module同时支持MTS/COM+对象

开发Internet/Intranet应用系统的WebSnap组件组
Delphi 6中最重要的新增功能之一应该就要算是能够让程序员开发Internet/Intranet应

系统的新架构和组件,这个新的功能称为WebSnap。Delphi 6的WebSnap允许程序员
使用组件和可视化的方式快速开发复杂的Internet/Intranet应用系统。WebSnap的特点

是允许程序员直接在这些组件之中加入稿本语言的能力,并且能够直接在Delphi的整
合发展环境中撰写稿本语言,预览Web应用程序的输出结果,以及Web应用程序产生
的HTML程序代码。
此外当程序员在开发Web应用程序时,经常需要使用许多的服务,例如处理图形的元
件,上传档案的服务,Session的服务,搜寻档案的服务,登录和注销的服务等,
WebSnap都已经制作成了组件可以让程序员直接使用,程序员再也不需要花费时间撰
写这些程序代码。下图便是Delphi 6WebSnap的组件组。
Delphi 6 的WebSnap提供了超过10个的组件
此外Delphi 6提供了Web App Debugger公用程序,允许程序员开发和除错Web应用程
式,让开发Web应用程序再也不是痛苦的流程。而WebSnap精灵更允许程序员建立不
同的Web应用程序,以及应用程序使用的快储方式。例如下图便是WebSnap精灵的画
面,从这个画面中可以看到Delphi 6能够建立各种型态的Web应用程序。
Delphi 6的WebSnap精灵允许程序员建立各种不同的Web应用系统
在上图中程序员建立Web应用程序时,也可以点选中间的Components…按钮选择
WebSnap精灵在自动建立Web应用程序时使用的WebSnap组件。例如下图显示了程序
师可以选择使用的丰富的组件和服务。
Delphi 6的WebSnap提供了许多开发Web应用系统时需要使用的服务
由于WebSnap状况结合稿本语言,因此程序员也可以指定WebSnap在自动产生稿本语
言时使用的稿本语言种类,以及产生的PageProducer的型态。例如下图的画面显示了
程序员可以选择使用JScript或是VBScript,可见WebSnap的弹性十足。
Delphi 6的WebSnap允许程序员使用JavaScript或是VBScript等 稿本语言
最后Delphi 6更棒的一点是WebSnap可以结合前面介绍的客制化View,让程序员直接
在Delphi的整合发展环境中就可以预览,开发和检视Web应用程序的结果。例如下图
是直接在Delphi的整合发展环境中使用稿本语言修改Web应用程序,而且稿本语言也
具有和Object Pascal一样以不同颜色显示不同语言元素的效果。
Delphi 6允许程序员在整合发展环境中直接使用稿本语言撰写Web应用程序
至于下图则是在Delphi的整合发展环境中直接检视Web应用程序的预览画面,可以让
程序员知道Web应用程序将来在浏览器中执行的结果。
Delphi 6的客制化View可以让程序员在开发Internet/Intranet应用程序时在整合发展
环境中检视Web应用程序的结果
总之,WebSnap让Delphi 6在开发Internet/Intranet应用系统方面有长足的进步,提供

非常好的整好开发环境。在未来WebSnap也将移植到Linux平台上,让Kylix的程序员
也能够使用相同的组件和技术开发Internet/Intranet应用程序。事实上程序员如果能够

结合WebSnap和Delphi的数据库能力,以及COM+的功能,将能够开发出威力十足的
Web应用系统。
MIDAS的进化版本-DataSnap
在Delphi 6中,MIDAS将改名为DataSnap。DataSnap不但强化了MIDAS原有的功能,
更加入了许多新的组件,让程序员可以使用它开发出更为强劲的应用系统,此外
DataSnap也改善了MIDAS的执行效率,让使用它的应用程序能够执行得更快速。下图
是Delphi 6中DataSnap的组件组,从图中可以看到数个新的组件。
Delphi 6的DataSnap组件组
此外在许多细节方面DataSnap也提供了以前MIDAS没有的功能,例如直接以XML的形
式呈现MIDAS的Data Packet,和更细阶的控制等。对于使用MIDAS开发应用系统的程
式师来说,新的DataSnap将会让程序员更为满意。
XML/XSL的支持
Delphi 6的另外一个重要的改良就是对于XML/XSL的支持了。除了增加许多新的VCL
组件让程序员不必使用低阶的COM接口或是复杂的API就可以轻易的处理XML/XSL文
件和资料之外,MIDAS的资料更可以直接输出成XML,或是把XML的资料直接汇入
成MIDAS的Data Packet,Delphi的程序员再也不需要为复杂的XML程序设计伤脑筋了
。下图就是Delphi 6和XML有关的组件。从图中我们可以看到Delphi 6以VCL组件封装
了XML Document,让程序员直接使用Object Pascal来处理XML封装的资料,并且允许
程序员选择使用Microsoft的XML分析引擎,或是使用由IBM开发的XML分析引擎。
Delphi 6 中支持开发XML的组件组
除此之外,如果程序员需要处理大量以固定格式封装的XML资料,那么Delphi 6更提
供了一个可视化精灵,让程序员先汇入此XML档案。此精灵便会自动分析此XML文
件,然后自动产生以Object Pascal封装的程序代码,让程序员直接可以呼叫自动产生的

程序代码中的方法来存取XML封装的资料,不再需要使用XML Document组件来辛苦的
自己分析XML之中的资料,而且执行效率也比较好。
例如下面的图形就是Delphi 6中XML Data Binding精灵的画面。在这个精灵中我汇入
了一个封装股市信息的XML档案,那么这个这个精灵便会自动产生如下的Object
Pascal程序代码:
Delphi 6 的XML Data Binding精灵
在下面的程序代码中,我只需要存取TXMLStockType类别之中的功能,例如Get_Price,

就可以轻易的取得XML文件之中股票的价格,不再需要使用XML Document组件来分
析,这样是不是快多了,而且不容易出错呢?在支持XML方面,Borland的确为程序员
设想了许多的东西,也提升了Delphi程序员许多的生产力,而XML Data Binding精灵
特别适合使用在程序员需要经常处理大量格式固定的XML文件。
IXMLStockListType = interface;
IXMLStockType = interface;
{ IXMLStockListType }
IXMLStockListType = interface(IXMLNodeCollection)
['{F56A36C4-4014-11D5-8B76-E593B0087905}']
{ Property Accessors }
function Get_Stock(Index: Integer): IXMLStockType;
{ Methods & Properties }
function Add: IXMLStockType;
function Insert(const Index: Integer): IXMLStockType;
property Stock[Index: Integer]: IXMLStockType read Get_Stock; default;
end;
{ IXMLStockType }
IXMLStockType = interface(IXMLNode)
['{F56A36C5-4014-11D5-8B76-E593B0087905}']
{ Property Accessors }
function Get_Exchange: WideString;
function Get_Name: WideString;
function Get_Price: WideString;
function Get_Symbol: WideString;
function Get_Volume: WideString;
procedure Set_Exchange(Value: WideString);
procedure Set_Name(Value: WideString);
procedure Set_Price(Value: WideString);
procedure Set_Symbol(Value: WideString);
procedure Set_Volume(Value: WideString);
{ Methods & Properties }
property Exchange: WideString read Get_Exchange write Set_Exchange;
property Name: WideString read Get_Name write Set_Name;
property Price: WideString read Get_Price write Set_Price;
property Symbol: WideString read Get_Symbol write Set_Symbol;
property Volume: WideString read Get_Volume write Set_Volume;
end;
{ Forward Decls }
TXMLStockListType = class;
TXMLStockType = class;
{ TXMLStockListType }
TXMLStockListType = class(TXMLNodeCollection, IXMLStockListType)
protected
{ IXMLStockListType }
function Get_Stock(Index: Integer): IXMLStockType;
function Add: IXMLStockType;
function Insert(const Index: Integer): IXMLStockType;
public
procedure AfterConstruction; override;
end;
{ TXMLStockType }
TXMLStockType = class(TXMLNode, IXMLStockType)
protected
{ IXMLStockType }
function Get_Exchange: WideString;
function Get_Name: WideString;
function Get_Price: WideString;
function Get_Symbol: WideString;
function Get_Volume: WideString;
procedure Set_Exchange(Value: WideString);
procedure Set_Name(Value: WideString);
procedure Set_Price(Value: WideString);
procedure Set_Symbol(Value: WideString);
procedure Set_Volume(Value: WideString);
end;
开发Web Service的精灵和组件
Web Service也是现在最热门的Web技术了,不管是IBM或是Microsoft都在发展Web
Service的解决方案。Delphi 6在这方面也不落后,Delphi 6提供了SOAP和Web Service

精灵,让程序员能够快速的开发SOAP应用系统,也可以汇入WSDL自动产生骨架程
式码。由于SOAP是未来Web和分布式应用系统的主流技术,而Web Service更是未来
Web应用系统的主要软件架构,因此对于程序员来说,掌握这些技术便成了非常重要
的课题。
Delphi 6是Borland支持SOAP的第一个产品,由于SOAP是标准的协议,因此藉由
Delphi 6开发的SOAP应用系统可以和COM+,EJB或是Microsoft的.NET沟通,Delphi的
程序员现在就可以使用它开发未来的应用系统。下图便是Delphi 6提供的SOAP精灵,
在Delphi 6中也提供了6个VCL组件让程序员开发SOAP和Web Service的应用系统。
Delphi 6 允许程序员快速建立SOAP应用程序和Web Service
由Delphi 6 自动产生的SOAP模块
由于SOAP是Delphi 6重要的功能,又是现在最流行的技术,因此希望在未来的
RUN!PC文章中能够有机会详细的为各位介绍如何使用Delphi 6的SOAP和Web Service
技术开发应用系统 并且和其它的系统整合。
重新再造的执行时期函式馆
对于Delphi 6和Kylix来说,Borland进行的隐形工程就是它们的执行时期函式馆(Run
Time Library-RTL)了。Delphi 6的RTL不但为了跨平台而重新的整理过,而且加入了许

多新的RTL公用函式,以便让程序员呼叫。这些新增的函式数目超过了数10个,例如
,光是有关DateTime的函式就有数10个。此外Borland为了让Delphi 6中的Variant型态

和函式也能够使用在Linux平台,因此特别新增了Variants.PAS这个程序单元,让两个
平台同时拥有Variant型态的变量和函式可以使用。
也许应该谢谢Kylix,在Delphi的执行时期函式馆将近3个版本没有什么大幅改善的情
形下,在Delphi 6中Borland终于再次的重整和改善了核心函式馆,也许对于大部份的
Delphi程序员来说可能没有什么感觉,但是经过改善的RTL不但功能更丰富,也避免
了因为VCL和RTL持续增加功能而会大幅增加编译出来的执行程序大小巨幅增加的可
能。
第14版的Object Pascal编译器
Delphi 6的编译器为了支持窗口和Linux平台以及为了支持SOAP和Interface RTTI,因此

也进行了不小的改善。在Delphi 6中,以往以I Unknown为基础接口的架构已经被更改
为IInterface,所有其它的接口都可以从IInterface继承下来。IInterface定义了类似
COM
中IUnknown接口所有的方法。Borland如此做是为了让Window和Linux平台上的接口
机制都趋于一致。
此外Delphi 6也加入了一个新的接口IInvokable,任何从IInvokable接口继承的接口以

及实作的类别都具备远程激活的能力。这个功能对于Web和分布式应用系统有重要的
影响。当然对于提升Delphi成为分布式开发工具也有相当的效果,Borland在编译器方
面持续的进步是值得肯定的。
不过,很可惜的是Borland并没有在Delphi 6的Object Pascal加入try…except…final
ly这
个被许多Delphi程序员要求加入的语言架构,虽然这个架构在目前也可以使用巢状的
try…try…except…end…finally来达成相同的效果,但是前者明显的比较简洁,而
Microsoft的C#和VB.NET则吸收了Object Pascal的这个语言优点,再加入了try…excep
t
…finally架构。希望Borland能够在未来的Delphi版本中也可以从善如流的加入。
产品总评
虽然前面的文章介绍了许多Delphi 6新增加的功能,但是仍然有许多的功能是本文没
有介绍的,例如Delphi 6对于CORBA的支持和CLX等。下面的表格整理了Delphi 6中
重要的支持功能,并且附加了评语和得分以供读者参考。
Delphi 6最主要的功能重点是在XML/XSL,Internet/Intranet以及SOAP和Web Service方

面的加强。又为了跨平台的目的,因此也在资料存取引擎,可视化组件架构和执行
时期函式馆方面进行了大幅度的改善。至于在BDE,ADO和COM+方面则只有小幅的
进步。
结论
当Microsoft不再推出VB/VC原生窗口开发工具,而Power Builder等其它窗口开发工具
也逐渐被淘汰出窗口平台之际,Delphi 6可以说是唯一最新的原生窗口开发工具,也
是最好的原生窗口开发工具。如果你仍然需要在窗口下开发应用系统,或是需要使
用/整合最新的信息技术,那么Delphi 6仍然是非常值得购买和升级的开发工具。
不过希望在Borland全力发展Linux平台上的RAD工具时,不要忘记了窗口平台仍然有
许多的程序员需要最好的窗口开发工具,Borland仍然需要投注相当的资源和人力继
续发展未来版本的Delphi。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧