zoukankan      html  css  js  c++  java
  • Delphi开发人员指南 第一部份快速开发的基础 第1章 Delphi下的Windows编程(一)

    1.1 Delphi产品家族

         由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的高级语言编译器、最为领先的数据库技术(应该比不上PB)。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率。

          Delphi可以Windows3.x、Windows95、WindowsNT、WindowsXP、Windows Vista、Windows7等环境下使用。当前,Delphi也可以在Linux平台上开发应用,其在Linux上的对应产品Kylinx。

         “真正的程序员用C++,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。

    Delphi的发展已有近20年的历史:

    时间 版本 说明
    1995 1.0 1995 1.0 支持16位Windows开发。基于框架(VCL)的,可拖曳、可视化的开发环境
    1996 2.0 以32位编译器为核心,支持C/S数据库开发
    1997 3.0 加入接口(Interface)的机制。IDE:首次提供了(Code Insight)
    1998 4.0 加入动态数组和方法覆盖等支持。IDE:增强调试能力,提供代码模板
    1999 5.0 增强了IDE和调试器,提供了TeamSource。简化Internet的开发,增强数据库支持
    2001 6.0 提供了Web Service。跨平台的Kylix 1.0和CLX
    2002 7.0 提供了.NET的过渡,增强的Internet开发(IntraWeb),完善数据库支持,增加了Indy网路元件和Rave Report资料库报表,并且支援UML及XP的程式制作。
    2003 8.0 单纯的for .NET版本,拥有C#的能力,保留了Delphi的易用性(业内视为一个过渡版本
    2004 9.0 正式名称:Delphi 2005。语法:加入了inline及for in loop等功能。IDE:把Borland Delphi. Net、Borland Delphi Win32、Borland C#、Enterprise Core Objects等环境和功能集成成一个开发工具,因此可以在Win32和.NET开发环境中切换或同时进行
    2005 10.0 发布名称:Borland Developer Studio(BDS) 2006。集成C++ Builder; ECO(Enterprise Core Objects)升级到ECO III; 集成Together for Delphi,可以在同一个IDE中进行UML开发;QA Audits和QA Metrics可以快速的把握专案的设计和代码的质量。
    2006   Turbo Borland将BDS 2006拆分成几个独立的版本(Delphi for win32、Delphi for .net、C#、C++ Builder),而且不能同时安装两个不同的版本。由于Borland的IDE生产部份独立成为一家名为codegear的公司,所以这个版本是以Borland名义推出的最后一个版本。
    2007 11.0 正式名称:CodeGear RAD Studio - Delphi 2007。
    2008 5.7   Borland正式宣布将CodeGear子公司出售给Embarcadero(易博龙)技术公司。
    2008 8.25   Embarcadero发布CodeGear Delphi 2009 Pre-release版。
    2009 8.25   Embarcadero发布CodeGear.RAD.Studio.2010版
    2010 8.30   Embarcadero 发布 Delphi XE(又名Delphi 2011,代号为Fulcrum)
    2011 1.27   Embarcadero公司宣布成立一个新的精简版Delphi Starter Edition,是在爱好者和谁得到一个稍微简化的功能集为一个小的创业公司的价格,旨在可用性。

    1.2 无论学Delphi还是学C#都要记住的一个人

         Anders Hejlsberg,丹麦人,曾在丹麦科技大学学习工程学。Anders Hejlsberg第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称Turbo Pascal。在Borland,Hejlsberg继续开发Turbo Pascal,并最终带领他的小组设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi语言。

    1.3 Delphi是什么

         曾经有人会问这样的问题:“到底什么使得Delphi如此优秀?”和“为什么和别的编程工具相比,我更愿意选择Delphi?”等等。

    1.3.1 可视化开发环境

         可视化开发环境通常分为三个组成部分:编辑器、调试器和窗体设计器。这三部分是协同工作的。当你在窗体设计器中工作时,Delphi在后台自动为你正在窗体中操纵的控件生成代码。你还可以自己在编辑器中加入代码还定义应用程序的行为,同时还可以在同一个编辑器中通过设置断点和监控点等来调试程序。Delphi的窗体设计器的与众不同之处在于,Delphi是建立在一个真正面向对象的框架结构基础之上的。这样,你对蕨类所做的改变都将会传递给所有的派生类。这里涉及的一项关键技术就是VFI(visual form inheritance),即可视化窗体继承。VFI技术使你能够动态地继承当前项目或对象库中的任何其他窗体。一旦基窗体发生改变,派生的窗体会立即予以更新。这一点VC的对话框编辑器到现在也没有超越。

    1.3.2 编译器的速度和已编译代码的效率

         快速的编译器可以使你逐步递进地开发软件,经常地修改源代码、重新编译、测试、再修改、再编译、再测试……形成这样一个良好的开发循环。在当时的年代最快的编译器在Borland最慢的也在(C++Builder)。

    1.3.3 编程语言的功能及其复杂性

         在旁观者的眼里,一种语言的功能和复杂程度是极为重要的,这也是许多争论的热点。对这个人来说简单的东西,对那个人来说可能很难;对这个人来说功能有限的东西,对另一个人来说却可能是非常完美的。因此,以下几点仅源于个人的经验和体会:

         从根本上来说,汇编是一种最有力的语言。用它你几乎无所不能。但是,即便是用汇编开发最简单的应用程序,难度也非常大,还可能一无所获。(这里说的是2000年前的汇编,现在用RADAsm开发的基于MASM32的很简单的窗口程序也是点点鼠标就行了)不过汇编代码维护起来还是没有高级语言容易,因为代码从一个人传给另一个人、再到下一个人,设计思想和意图越来越不明朗,直到代码看起来如同天书。因些,我们对汇编的评价很低,它虽然功能很强大,但对几乎所有的开发者来说都太复杂了。(不过对于破解爱好者和系统安全专家来说汇编可是他们手中的利器)

         C++是另一种极为有力的语言。在它的潜在功能(如预处理器宏、模板、操作符重载等等)的帮助下,你几乎可以使用C++设计你自己的语言。只要合理地使用其丰富的功能选项,就可以开发出简洁直观、易于维护的代码。然而,问题是,许多的开发者总滥用这些功能,这就很容易导致发生重大错误。事实上,写出糟糕的C++代码反倒比写出好的C++代码更容易。(学坏容易学好难)因为这种语言自己不会朝着好的设计方向前进-这由开发者决定。

         Object Pascal和Java给我们的感觉很相似,因为它们很好地把握住了复杂性和功能性的平衡。它们都采取了这样一种途径,即限制其可用功能以加强开发者的逻辑设计。

    1.3.4 数据库结构的灵活性和可扩展性

         由于Borland缺少一种数据库计划,因此Delphi保留了我们认为是所在工具中最灵活的数据库结构。对于大多数基于本地、客户/服务器和ODBC数据库平台的应用程序来说,BDE的功能都非常强大。如果你对此不满意,可以避开使用BDE以支持新的本地ADO组件。

    1.3.5 框架对设计和使用模式的扩充

         这是一项经常被其他软件设计工具所忽略了的重要功能。VCL是Delphi最重要的组成部分。在设计时操纵组件、创建组件、使用OO(面向对像)技术继承其他组件的行为,这些能力都是决定Delphi效率的关键因素。在许多场合,编写VCL组件都采用固定的OO设计方法。相比之下,其他基于组件的框架经常过于死板或过于复杂。比如ActiveX控件具有和VCL控件相同的设计期性能,但却不能被继承以创建和个具有其他不同行为的新类。传统的类框架,如OWL和MFC,需要你有大量的内部结构知识,而且如果没有RAD工具的设计期支持,其功能将会受到抑制。

    1.4 Delphi的IDE主窗口

    image

  • 相关阅读:
    MongoDB 基础命令行
    AngularJS 监控对象属性:$watch和$digest
    AngularJS核心01:如何启动
    免费的编程中文书籍索引
    AngularJS Intellisense in Visual Studio 2012
    SQL Server中Rowcount与@@Rowcount
    VS 关于 .sln 文件和 .suo 文件
    Dart 基础重点截取 Dart 2 20180417
    io.netty.resolver.dns.DnsNameResolverContext
    mybatis BigDecimal Double Long 的坑爹事
  • 原文地址:https://www.cnblogs.com/heart4u/p/2068511.html
Copyright © 2011-2022 走看看