DELPHI实例学习.docx
- 文档编号:23951330
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:38
- 大小:75.45KB
DELPHI实例学习.docx
《DELPHI实例学习.docx》由会员分享,可在线阅读,更多相关《DELPHI实例学习.docx(38页珍藏版)》请在冰豆网上搜索。
DELPHI实例学习
Delphi简介
Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。
“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。
Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。
和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。
可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。
它一直是程序员至爱的编程工具。
Delphi具有以下的特性:
基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。
但最重要的还是ObjectPascal语言,它才是一切的根本。
ObjectPascal语言是在Pascal语言的基础上发展起来的,简单易学。
Delphi提供了各种开发工具,包括集成环境、图像编辑(ImageEditor),以及各种开发数据库的应用程序,如DesktopDataBaseExpert等。
除此之外,还允许用户挂接其它的应用程序开发工具,如Borland公司的资源编辑器(ResourseWorkshop)。
在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:
适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。
Delphi发展至今,从Delphi1、Delphi2到现在的Delphi5,不断添加和改进各种特性,功能越来越强大。
Delphi5添加了对IDE(集成开发环境)的很多改进新特性,扩展了数据库支持(ADO和InterBase数据库),带有Internet支持的MIDAS改进版,TeamSouse版本控制工具,转换功能,框架概念以及很多的新组件与新特性。
Delphi5功能十分完善和强大,本栏目将以它为基础,介绍Delphi的开发环境、基本概念、控件的使用、常用的编程方法和编程技巧。
本栏目的对象为Delphi初学者,主旨是帮助初学者更快更好掌握Delphi基本的编程方法和技巧。
--Delphi快速入门--Delphi5的集成开发环境(IDE)
下一节
启动Delphi5,进入它的集成环境,你可以看到如下图所示四个窗口,这四个窗口是开发Delphi应用程序的主要工具。
在Delphi5的主窗口中,包含了Delphi的标题栏、桌面管理器、菜单栏、加速栏和组件板五部分,它是管理其他窗口和Delphi集成开发环境的工具。
其中加速栏提供了文件查看、保存、打开、关闭、添加和删除等功能;组件板用于按类放置各种组件,单击某个选项卡的标签,该选项的卡下的组件就显现出来;桌面管理器(如下图所示)是新版本的Delphi提供的新功能,它允许我们定制自己的IDE,并将它保存下来。
Delphi5的对象查看器(ObjectInspector)用于查看和设置程序中各控件的属性。
与以前的对象查看器相比,它有了一些新的变化,最重要的变化包括图形下拉式列表和属性类别的使用。
前者容易理解和使用。
它是指对象查看器中某些属性的下拉列表中可以包括图形元素,如下图左图所示。
属性类别是Delphi5新添的功能,它可以使对象属性按特定的类别进行排放。
为了根据类别而不是按名称(默认)来显示属性,可以用鼠标右击对象查看器,选择菜单命令“Arrange|ByGrategory”即可,结果如下图右图所示。
代码编辑器用来编写应用程序的代码,也称为Editor窗口,如下图所示。
在初始状态下,代码窗口掩藏在窗体下,我们可以通过快捷键F12将它显示出来。
代码编辑窗口的标题显示的当前单元的文件名,缺省为Unit1.PAS。
由于一个应用程序可以有多个单元,所以在编辑器中将有多个选项卡,用于显示本单元代码。
在编辑窗口中除了显示单元文件(*.PAS)外,还可以显示当前的项目文件(*.DPR)。
选择“View|ProjectSource”,就可以查看当前项目文件的内容。
窗体设计是用户使用最多的一个Delphi窗口,它用于将组件放置于窗体上。
用户可以使用鼠标或通过ObjectInspector直接选择某个控件。
如果某个控件完全遮盖了另一个控件,可以使用ESC键选择父控件,这样我们可以按一次或多次ESC键来选择窗体。
--Delphi快速入门--Delphi5的单元文件
下一节
单元文件是Delphi程序中最重要的文件,它包含了程序中最主要的源代码,无论是窗体和组件的事件处理过程或单独的源代码都保存在单元文件中。
对于初学者来说,Delphi的单元文件比较复杂。
这里将对Delphi5的单元文件进行介绍。
单元文件分为有窗体文件和无窗体文件两种。
每当用户在项目中新建一个窗体,例如使用“File|NewForm”或加速按钮创建一个新窗体,Delphi就会自动创建一个相应的单元文件。
如果用户需要一个无窗体的单元文件,则应该使用“File|NewUnit”菜单命令或在项目管理器中添加一个单元文件。
可以说每个窗体对应着一个单元,反过来说则不一定成立。
创建一个新的应用程序时,程序只有一个单元文件Unit1和一个相应的窗体Form1。
下面是一个典型的带窗体的单元文件结构:
unitUnit1; //单元名
interface //接口部分
uses //用来申明本单元内访问到的各单元
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs, //标准单元
Unit2,Unit3; //用户自定义的单元
typeTForm1=class(TForm) //申明一个新窗体类
Label1:
TLabel; //窗体上的组件被申明为新类的对象
Button1:
TButton;
ScrollBar1:
TScrollBar;
RadioButton1:
TRadioButton;
ComboBox1:
TComboBox;
procedureButton1Click(Sender:
TObject); //所有的事件也被申明为新类的方法
procedureComboBox1Change(Sender:
TObject);
procedureLabel1Click(Sender:
TObject);
procedureRadioButton1Click(Sender:
TObject);
private //私有申明
{Privatedeclarations}
public //公共申明
{Publicdeclarations}
end;
var
Form1:
TForm1; //申明一个窗体对象
implementation //实现部分
Uses
Unit4;
{$R*.DFM}
end.
在interface(接口部分)起始处的Uses子句指出本单元用到的各单元,其中有系统的标准单元,我们也可以添加自定义的单元。
然后定义了一个新的窗体类Tform1,窗体上所有的组件都被申明为新类中的一个对象,而且是Published类型的。
所有的事件处理过程也被申明为Published类型,这样就能在设计阶段对组件的属性进行修改或改变处理事件。
然后申明了一个新窗体类的窗体对象,该对象名即窗体的Name属性。
implementation(实现部分)包含了程序的执行代码和其它的隐含申明。
不同单元之间的引用可以使用Uses语句。
例如,如果Unit1中需要引用Unit2中的变量和对象,可以在Unit1的interface部分的Uses语句中添加单元名Unit2。
但是有一点需要注意的是,Delphi中不允许循环引用。
所以我们不能在Unit2的interface部分的Uses语句中加入对Unit1的引用。
如果Unit2中确实需要引用Unit1中的变量或对象,我们该怎么办呢?
我们可以在Unit2的implementation(实现部分)手工添加Uses语句进行申明:
implementation
Uses
Unit1;
interface(接口部分)可以申明一些不同的元素,包括过程、函数、全局变量和数据类型。
当申明一个新类并把它放进单元时,可以写入单元的interface部分内,这被称为类的接口(也就是它的申明),也可以写入单元的implementation部分。
变量不同的申明具有不同的作用域。
变量只有在它的作用域内才有意义。
在定义例程事件或过程内申明的变量,只能在本过程中使用。
当程序执行定义该变量的例程时会分配内存给该变量,一旦例程终止,内存会自动释放。
在implementation部分申明的变量,只能在本单元使用,而不能在单元外使用。
在interface部分申明的变量,它的作用域将扩展到使用Uses语句申明本单元的其它单元中。
例如,如果Unit2中使用Uses申明引用Unit1,那么Unit2中便可以使用Unit1中在interface部分任何申明的变量。
--Delphi快速入门--Delphi5Enterprise版10大特点
下一节
1.支持XML标准,在Web上快速提交商业信息。
Delphi简化了数据分布、优化了数据交换过程。
对XML的支持,使开发人员快速构建的系统具有弹性和可扩展性,以适应Internet电子商务带来的新技术浪潮。
2.利用InternetExpress构建高速Internet应用。
Delphi5使开发人员能够用DHTML和XML开发超“薄”(ultra-thin)客户端,并在Internet上快速分发标准Web特征的客户端应用程序。
InternetExpress包括WebClientPage向导、MIDASPageProducer和WebBroker,用于构建分布式DHTML和XML应用程序以适应众多客户端和大量数据的需要。
3.支持ADO。
利用Microsoft的ActiveXDataObject(ADO)和OLEDB技术,Delphi5能够快速访问关系型和非关系型数据库,其中包括电子邮件和文件系统。
开发人员可以对Internet信息进行直接访问,帮助用户更好地进行商业决策。
TeamSource增强了整个开发队伍的工作效率。
4.Delphi5使整个开发团队能够更协调、更快速地工作。
TeamSource革新了管理源代码的方法。
TeamSource建立在已有的源代码管理和版本管理之上,并通过一个高效的工作流模式对其功能进行扩展,简化了大型、分散的开发团队的源代码管理。
5.MIDAS扩展Internet应用。
提交适应大交易量及多用户数的应用系统。
建立Internet应用可以简化对Internet或Intranet上众多的浏览器客户端或Windows客户端的管理。
MIDAS支持所有的分布式计算标准,如CORBA、COM和MTS,并能将原有系统与电子商务和Internet应用平滑地集成在一起。
6.InterBaseExpress构建卓越的关键应用系统。
Delphi5使Delphi和InterBase更紧密地结合,即将高效率、高性能的开发工具与快速、低维护量和优化配置的中小型关系型数据库等技术融于一体。
利用InterBaseExpress组件,VARs、Sls和ISVs能够快速地交付和分发高效的应用系统。
7.BorlandTranslationSuite将Delphi5应用程序快速地本地化。
在可视化地开发不同地域的应用程序的同时,Delphi还可以管理资源文件的转换,并将转换信息保存在一个库(repository),加速了国际化开发。
8.利用Delphi的专业IDE构建强大、坚固的应用程序。
Delphi的可视化开发环境使开发人员只要在面板上选择相应组件就能够快速建立应用程序和开发原型。
Delphi5最新ProjectBrowsing和DataModuleview帮助程序员更好地理解代码和数据,从而大大提高开发效率。
ToDoList功能和新增开发向导,如ControlpanelWizard,加快了程序编写速度。
9.VisualComponentLibrary增强面向对象开发的威力。
开发人员可以创建、定制和重用自己的组件,也可以从Delphi的VisualComponentLibrary中的200多个组件里选适用的组件择。
用最新的Frames功能开发者能够可视化地为商业逻辑创建组件。
开发人员能够开放地访问VCL源代码,包括新增的DecisionCube组件和附加的PropertyEditors,以及为支持MSOffice而提供的最新Automation组件。
Delphi基于组件技术大大简化了许多复杂的开发任务。
10.进一步增强的调试功能使复杂的项目更快地适应市场需求。
用Delphi5对相当复杂的项目进行纠错和改错也会变得十分简单。
Delphi进一步增强的调试功能使开发人员可以更好地理解和掌握程序代码,其中包括BreakpointToolTips、Actions、Groups、FPU/MMxView、以及对Drag和Drop的支持,等等。
--Delphi标准控件--按钮(Button)和位图按钮(BitBtn)
下一节
按钮(Button)是Windows应用程序界面中最常用、最简单的组件之一。
除了按钮之外,Delphi还提供了一种位图按钮(BitBtn)。
这种按钮的不同之处在于按钮上可以显示位图。
下面我们通过一个简单的例子来介绍这两种按钮。
在窗体Form1上放置两个普通按钮和两个位图按钮以及一个编辑框Edit,然后再添加一个窗体Form2,在其上放置一个标签和两个位图按钮。
程序界面如下图所示:
按下表设置各按钮的属性:
Form1
Form2
属性
Button1
Button2
BitBtn1
BitBtin2
BitBtn1
BitBtn2
Caption
Button1
Button2
对话框
&Close
Ok
Cancel
Kind
bkCustom
bkClose
bkOk
bkCancel
Cancel
False
True
False
False
False
False
Default
True
False
False
False
False
False
ModalResult
mrNone
mrNone
mrNone
mrNone
mrOk
mrCancel
以上均是按钮常用的一些属性,下面作简单的介绍:
Cancel:
该属性值为True时,则无论用户何时按Esc键,都会执行该按钮的OnClick事件。
如果同一个窗体上具有多个这样的按钮,则会执行TabOrder值最小的按钮的OnClick事件。
Default:
这个属性和Cancel属性相似。
当用户按下Enter键时,将执行该按钮的OnClick事件。
但有一个例外,如果当前拥有输入焦点的控件为另一个按钮时,按Enter键时则只执行当前按钮的OnClick事件。
Kind:
这个属性为位图按钮所特有,选择Kind属性的某个选项,用于决定该位图按钮的种类每一种位图按钮具有自己独特的功能。
位图按钮常用于各种对话框或模态窗口中,根据按钮的ModalResult属性值来决定对模态窗口的操作。
ModalResult:
模态值。
当我们单击位图按钮时,将把对话框的模态值设为相同的值。
它将决定位图按钮的父窗体的关闭方式。
如单击mbOk按钮,将关闭对话框,返回mrOk值。
在完成界面设计后,开始编写事件处理过程。
程序清单如下:
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,
StdCtrls,Buttons;
type
TForm1=class(TForm)
Button1:
TButton;
Button2:
TButton;
BitBtn1:
TBitBtn;
BitBtn2:
TBitBtn;
Edit1:
TEdit;
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureBitBtn1Click(Sender:
TObject);
procedureBitBtn2Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
uses
unit2;//调用Unit2的申明;
{$R*.DFM}
procedureTForm1.Button1Click(Sender:
TObject);
begin
edit1.Text:
='Button1的Default属性为True';
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
showmessage('Button2的Cancel属性为True');
//显示出一个信息框
end;
procedureTForm1.BitBtn1Click(Sender:
TObject);
begin
form2.ShowModal;//让Form2以模态窗口的显示出来;
end;
procedureTForm1.BitBtn2Click(Sender:
TObject);
begin
end;
end.
由于在程序中我们使用了两个窗体,而在Delphi中每个窗体对应一个单元,所以程序中便有两个单元(Unit1和Unit2)。
在Delphi中不同单元之间的调用要在调用单元的实现部分(implementation)的开始进行申明,这里为:
implementation
usesunit2;
在添加Form2时,系统将自动在项目文件Project.dpr中添加生成Form2的语句:
Application.CreateForm(TForm2,Form2);
但是,程序运行时,只显示出Form1,Form2是隐藏的。
为了显示出Form2,我们在窗体Form1的BitBtn1按钮的OnClick事件中添加如下的语句:
form2.ShowModal;
单击BitBtn1按钮,将以模态窗体的形式显示出来。
所谓模态窗体(ModalForm)是指该窗体关闭之前,其他的窗体不能接受输入焦点。
按下F9编译运行程序,然后按Esc键,将弹出一个信息框,如右图所示。
由于Button2的Cancel属性设为True,所以程序运行时,无论何时按下Esc键,将启动Button2的OnClick事件:
procedureTForm1.Button2Click(Sender:
TObject);
begin
showmessage('Button2的Cancel属性为True');//显示出一个信息框
end;
即按Esc键相当于单击Button2。
单击Edit1,将输入焦点置于编辑框内,然后按下会车键。
此时将发现触发了Button1的OnClick事件:
procedureTForm1.Button1Click(Sender:
TObject);
begin
edit1.Text:
='Button1的Default属性为True';
end;
因为Button1的Default属性设置为True,所以当输入焦点在编辑框中时,按下会车键时,将触发Button1的OnClick事件,如下图所示。
单击BitBtn1(标题为“对话框”)按钮,将弹出Form2窗体。
Form2为模态对话框,单击mbOk按钮或mbCancel按钮,对话框都将自动关闭。
如果你不想让对话框关闭,可以将位图按钮的ModalResult属性设置为BrNone。
单击Form1的BitBtn2按钮(标题为“Close”),Form1将自动关闭。
Form1为非模态窗体,但是BitBtn2按钮为mbClose按钮,所以它具有关闭窗体的功能。
--Delphi标准控件--编辑框(Edit)
下一节
编辑框也是Windows程序中常用的组件,它主要用于输入单行文字。
下面解释编辑框一些常用属性。
属性
说明
PasswordChar
这个属性在一些编辑框组件如TMaskEdit、TDBEdit中都有。
缺省时该属性为#0,即没有掩码。
用户可以自己设置一个掩码,如‘*’,则用户在编辑框中输入的字符都将以‘*’字符显示,而隐藏真实的字符。
AutoSize
确定编辑框是否随字体变化而自动变动尺寸,缺省为True
Text
该属性用于显示和保存编辑框中的字符串
MaxLength
确定编辑框最多可以输入的字符数,缺省时为0,表示可以输入任意多的字符
ReadOnly
确定程序运行时,用户是否可以改变编辑框中的内容。
若为True,表示不可以编辑。
AutoSelect
确定当编辑框获得输入焦点时,编辑框中的文字是否自动被选中
Edit常用的几个事件为:
OnChange、OnKeyPress、OnEnter事件,下面对它们做简单的介绍:
事件
说明
OnChange
当编辑框中的内容发生变化时,触发该事件,它是Edit中最常用,也是最有用的事件之一
OnKeyPress
当按下一个按键时,触发该事件
OnEnter
编辑框获得输入焦点时,触发该事件
上边介绍的三个编辑框事件非常有用,在Delphi编程中经常用到。
使用这三个事件,可以实现一些很有用的功能:
1.使用OnEnter事件,可以在编辑框获得输入焦点时,给出提示或触发其它事件。
下面的实例在编辑框Edit1获得输入焦点时给出一个提示信息,并使将Button1失效。
procedureTForm1.Edit1Enter(Sender:
TObject);
begin
showmessage('请输入您的密码');
Button1.Enabled:
=False;
end;
2.使用OnKeyPress事件,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DELPHI 实例 学习