决定了写这个教程,有时间连续发布,课程具有以下特点:
1.简单但详尽2;课程将连载发布. 3.此连载课程仅供大家学习参考.4.对课程有异议可提出书面申请.
第1章 Delphi基础知识
第1节 Borland公司与DelphiBorland公司于1983年由菲力浦·凯恩(Phillipe Kahn)创立。Delphi于1995年由Borland公司推出,由Anders Hejlsberg主持设计。Delphi语言的演变过程:Pascal→Object Pascal→Delphi。第2节 Delphi的特点一、开发工具的选择程序员的核心能力是自身的编程修养、思想、理念等。只要扎扎实实地打好基础,具备良好的编程思想,则无论选择何种开发工具均可成为软件开发高手。二、Delphi的主要特点1. 可视化开发环境2. 丰富的VCL3. 面向对象特性4. 高效的编译器5. 强大的数据库开发功能6. 良好的分布式应用开发支持第3节 Delphi集成开发环境
主要组成:主窗口、窗体设计器、代码编辑器、对象查看器和对象树浏览器。一、主窗口标题栏、菜单栏、工具栏、组件面板。二、窗体设计器一个窗体对应一个单元。三、对象树浏览器(Object TreeView)显示本模块对象的层次结构。四、对象查看器(Object Inspector)包括对象列表、属性页、事件页。事件页的左列为事件名,右列为事件处理程序。双击右列的组合框可生成默认的事件处理程序。五、代码编辑和浏览窗口左侧为单元管理器,右侧为代码编辑窗口。六、代码洞察Delphi提供了与VB相似的代码洞察(Code Insight)技术,可以使代码的输入更加快捷,减少出错。1. 代码完成(Code Completion)(1)自动完成关键字(补充)Delphi集成开发环境的代码编辑器与VB相似,具有自动完成关键字和标识符的功能,它的快捷键为Ctrl+空格键(与VB中文版中的Alt+→键相似)。在中文Windows操作系统下,Ctrl+空格键被设置为打开/关闭输入法,导致在Delphi中无法使用这一快捷键快速输入关键字。可以通过控制面板将开/关输入法快捷键屏蔽,则Ctrl+空格键即可作为Delphi中快速输入关键字的快捷键。
(2)自动列示对象属性和方法输入对象名称和句点“.”后,系统将自动弹出该对象的属性和方法列表框供选择。2. 代码参数提示(Code Parameters)输入函数名、过程名或对象的方法名并输入左扩号,系统将自动弹出参数提示框,提示各参数的类型。3. 代码模板(Code Templates)代码模板用于提供语句模板,以便快速、准确地输入常用的语法结构框架代码。例如,输入“for”,然后按Ctrl+J键,可以生成如下for循环结构的框架代码:for := to do
begin
end;
4. 符号洞察(Tooltip Symbol Insight)将鼠标指针指向一个标识符,稍作停顿,系统将弹出提示框,显示该标识符的类型、所属单元名、声明的位置(行号)等。5. 类完成(Class Completion)在单元的接口(interface)部分声明类及其成员后,按Ctrl+Shift+C键,可以在实现(implementation)部分自动生成该类的所有方法的框架代码。第4节 Delphi编程的一般步骤
一、控制台应用程序(略)二、可视化应用程序1. 开发应用程序的一般步骤开发应用程序的一般步骤如下:l 设计界面创建应用程序;设计窗体;添加组件;设置对象属性。l 编写代码Windows应用程序的突出特点是事件驱动机制。编程的主要任务是在代码编辑器中为组件编写事件处理程序。l 编译运行编译:按Ctrl+F9组合键,或执行菜单命令:Project→Compile ...
运行:按F9键,或单击工具栏Run按钮,或执行菜单命令Run→Runl 保存文件
按Ctrl+Shift+S组合键,或单击工具栏Save All按钮,或执行菜单命令:File→Save All
注意:应当为每个工程单独创建一个文件夹,将该工程所需全部文件均保存在该文件夹中。2. 设计简单应用程序【例1.4.1】设计简单应用程序设计一个简单的应用程序,在单行文本框中输入姓名,在组合框中选择性别。单击“输入”按钮后,将姓名和性别显示在多行文本框中。单击“退出”按钮,卸载窗体。(1)设计界面设计窗体;添加组件;设置对象属性。启动Delphi,在窗体上添加两个标签(Label组件),设置Caption属性分别为“姓名”、“性别”;一个单行文本框(Edit组件),设置Text属性为空;一个组合框(ComboBox组件),设置Items属性为“男、女”两项,Text属性为“男”;一个多行文本框(Memo组件),设置Lines属性为空,ScrollBars属性为ssVertical;两个按钮,设置Caption属性分别为“输入”和“退出”。(2)编写代码Windows应用程序的突出特点是事件驱动机制。编程的主要任务是在代码编辑器中为组件编写事件处理程序。① 双击窗体上的“输入”按钮,在该按钮的单击事件过程中的begin之前声明一个字符串变量:var sInfo: String;
在bigin和end之间输入以下代码:
sInfo := ’姓名:’+ Edit1.Text + #13#10;
sInfo := sInfo + ’性别:’ + ComboBox1.Text + #13#10;
Memo1.Lines.Add(sInfo);
② 按F12键切换到窗体设计界面,双击“退出”按钮,输入:
Close;
技巧:
使用本章第3节所述代码洞察技术,可以快速准确地输入代码。
(3)保存文件单击工具栏Save All按钮,系统将提示保存单元文件(.pas)和工程文件(.dpr)。注意:工程所在文件夹中扩展名中带有“~”的文件是备份文件,可以删除。不要删除其他文件。(4)编译和运行编译:按Ctrl+F9组合键,或执行菜单命令:Project→Compile ...。编译后将在工程所在文件夹生成可执行文件(.exe)。运行:按F9键,或单击工具栏Run按钮,或执行菜单命令Run→Run。运行后亦将在工程所在文件夹生成可执行文件(.exe)。3. 使用帮助Delphi提供了较全面的帮助文件,正确地使用帮助是深入学习Delphi的有效途径。第5节 工程、窗体和单元文件
一、Delphi工程的组成一个Delphi工程主要由三个基本文件组成:工程文件、窗体文件和单元(unit)文件。1. 工程文件工程文件的扩展名为.dpr。工程文件含有对本工程中所有窗体和单元的引用以及主程序。执行【Project | View Source】命令可查看工程文件内容。当创建一个新工程时,工程文件的内容如下:program Project1; { 声明工程标识符 }
uses { 指明本工程使用的单元 }
Forms, { 非窗体单元 }
Unit1 in 'unit1.pas' {Form1}; { 窗体单元 }
{$R *.res} { 编译指令:链接资源文件 }
begin { 主程序块开始 }
Application.Initialize; {初始化;Application为隐含的全局变量 }
Application.CreateForm(TForm1, Form1); { 自动创建第一个窗体 }
Application.Run; { 运行应用程序 }
end. { 主程序块结束 }
代码说明:
保留字“program”指明本工程为应用程序(.exe)。若工程是动态链接库,则保留字为“library”。
Project1是工程标识符,也是工程文件的默认名称。
uses子句通知编译器有哪些单元链接到本工程中。上述代码中,Forms是一个标准单元标识符,所有使用窗体的Delphi工程均含有该标识符。
Unit1是另一个单元的标识符,该单元与一个窗体对应。Unit1.pas是含有该单元源代码的单元文件名。单元标识符和单元文件名必须保持一致才能正确编译。
保留字in通知编译器查找单元源代码文件的位置。注释{Form1}指明与该单元相关窗体的实例标识符(若单元不是一个窗体相关单元,则不出现此注释)。注释中的标识符与窗体的Name属性相同。在对象查看器【Object Inspector】中修改窗体名称时,工程文件内上述注释的内容同步改变。
$R是编译指令,表示与工程主文件名相同的资源文件(.res)被链接到本工程中。资源文件含有工程图标等内容。
begin...end代码块是工程的主程序源代码。
Application.CreateForm语句加载其参数指定的窗体。工程中的每个自动创建的窗体对应一条Application.CreateForm语句,各语句按照添加窗体的顺序排列。若需改变此顺序,应使用【Project | Options】菜单命令,不要直接修改工程文件的源代码。
Application.Run语句启动应用程序。
每当在工程中添加窗体或单元时,工程文件的uses子句中自动添加相关代码。
2. 窗体文件
窗体文件的扩展名为.dfm。窗体文件可以用两种格式保存:文本格式(默认)和二进制格式(为了向后兼容)。
右击窗体,选择【View As Text】,可以查看窗体文件的文本内容,此时窗体图形界面隐藏,若需返回图形界面,右击代码窗口,选择【View As Form】。
一个工程中可以有多个窗体。执行【File|New|Form】命令,或单击工具栏【New Form】按钮即可添加新窗体。
3. 单元文件
(1)单元文件的基本结构
单元文件的扩展名为.pas。每个单元文件是一个模块。单元文件可分为窗体单元文件和非窗体单元文件。前者与一个窗体对应,其中含有事件处理程序以及与窗体有关的代码;后者与窗体无关,是一个独立的模块,其中含有可以被其他单元调用的过程、函数等。
单元文件由单元头以及接口、实现、初始化(可选)和结束(可选)部分组成,以end和句点结束,其基本结构如下:
unit 单元名称;
interface
{接口部分}
implementation
{实现部分}
[ initialization
{ 初始化部分 }
[finalization
{ 结束部分 } ] ]
end.
接口部分:以保留字interface开始,在实现部分之前结束。在接口部分,声明可以由本单元以及其他单元或程序使用的类型、类、常量、变量、过程和函数。接口部分的过程和函数声明仅含有首部(原型),过程体和函数体在实现部分定义。在接口部分声明的类必须包括对所有类成员的声明。接口部分的uses子句必须紧随保留字interface之后出现。
实现部分:以保留字implementation开始,在初始化部分之前结束,若单元中没有初始化部分,则实现部分到单元结束为止。在实现部分,对接口部分声明的过程和函数进行定义(可省略参数)。此外,亦可声明本单元私有的类型、类、常量、变量、过程和函数。实现部分可以含有自己的uses子句(紧随implementation之后)。
初始化部分和结束部分均为可选项,若有结束部分,则必须有初始化部分。
(2)单元文件的主要内容
以下是创建一个新工程时窗体单元文件的内容:
unit Unit1; { 声明单元标识符 }
interface { 接口部分 }
uses { uses 子句指明引用的单元文件 }
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs;
type
TForm1 = class(TForm) { 类声明 }
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; { 类实例声明 }
implementation { 实现部分 }
{$R*.DFM} { 链接窗体文件的编译指令 }
end.
在上述代码中,声明了名称为Unit1的单元。该单元含有接口部分和实现部分。
在接口部分声明了一个由普通窗体类TForm派生的子类TForm1,然后用var关键字将当前工程中的窗体Form1声明为TForm1类的一个实例。
实现部分的$R编译指令用于链接窗体文件,将当前工程中的窗体文件加入到经过编译的可执行文件中。
注意:不要修改或删除含有“{$ ... }”标识的语句,此类语句是编译指令而不是一般的注释语句。
二、使用工程管理器
1. 打开工程管理器
执行菜单命令【View|Project Manager】,即可打开工程管理器(Project Manager)。
2. 管理工程
在工程管理器中,以树状结构显示工程组、工程、工程所含的单元及窗体,可以通过工具栏按钮或快捷菜单对工程、单元及窗体进行添加、去除等操作。
练习
1. 熟悉Delphi集成开发环境
主窗口、窗体设计器、代码编辑器、对象查看器、对象树浏览器和工程管理器。
2. 设计简单程序
(1)编制教材1.4.2节示例程序
根据教材9~12页所述步骤,练习编制教材1.4.2节【例1-2】程序,熟悉调整组件位置及尺寸的方法,掌握组件属性的设置。
(2)编制本教案第4节示例程序
练习编制本教案第4节“【例1.4.1】设计简单应用程序”。
(3)扩展本教案第4节示例程序
在窗体上放置4个标签(Label),设置Caption属性分别为“学号”、“姓名”、“性别”、“年龄”;三个Edit组件(单行文本框),设Text属性均为空,分别用于输入学号、姓名和年龄;一个组合框,设置Items属性为“男、女”两项,Text属性为“男”,用于选择性别;一个Memo组件(多行文本框),设Lines属性为空,用于显示已输入的信息;两个命令按钮,设Caption属性分别为“输入”和“退出”。
在“输入”按钮的单击事件过程中声明一个字符串变量,将用户在Edit组件中输入和在组合框中选择的内容存入变量,然后分行显示在Memo组件中。显示格式如下:
学号:030001
姓名:张三
性别:男
年龄:20
...
在“退出”按钮的单击事件过程中用Close语句关闭窗体。
3. 熟悉Delphi工程的组成
熟悉工程文件、窗体文件和单元文件的结构。
重点掌握单元文件的基本结构和主要内容。