收藏 分销(赏)

DELPHI实例学习.doc

上传人:二*** 文档编号:4824269 上传时间:2024-10-14 格式:DOC 页数:29 大小:280KB
下载 相关 举报
DELPHI实例学习.doc_第1页
第1页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、Delphi 简介简介 Delphi 是著名的 Borland(现在已和 Inprise 合并)公司开发的可视化软件开发工具。“真正的程序员用 c,聪明的程序员用 Delphi”,这句话是对 Delphi 最经典、最实在的描述。Delphi 被称为第四代编程语言,它具有简单、高效、功能强大的特点。和 VC 相比,Delphi 更简单、更易于掌握,而在功能上却丝毫不逊色;和 VB 相比,Delphi 则功能更强大、更实用。可以说 Delphi 同时兼备了 VC 功能强大和 VB 简单易学的特点。它一直是程序员至爱的编程工具。Delphi 具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强

2、大的数据库支持,与 Windows 编程紧密结合,强大而成熟的组件技术。但最重要的还是 Object Pascal 语言,它才是一切的根本。Object Pascal 语言是在 Pascal 语言的基础上发展起来的,简单易学。Delphi 提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,如 DesktopDataBase Expert 等。除此之外,还允许用户挂接其它的应用程序开发工具,如 Borland 公司的资源编辑器(Resourse Workshop)。在 Delphi 众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数

3、据库结构,从客户机服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。Delphi 发展至今,从 Delphi、Delphi到现在的 Delphi5,不断添加和改进各种特性,功能越来越强大。Delphi添加了对 IDE(集成开发环境)的很多改进新特性,扩展了数据库支持(ADO 和 InterBase 数据库),带有 Internet 支持的 MIDAS 改进版,TeamSouse 版本控制工具,转换功能,框架概念以及很多的新组件与新特性。Delphi5 功能十分完善和强大,本栏目将以它为基础,介绍 Delphi 的开发环境、基

4、本概念、控件的使用、常用的编程方法和编程技巧。本栏目的对象为 Delphi 初学者,主旨是帮助初学者更快更好掌握 Delphi 基本的编程方法和技巧。-Delphi 快速入门-Delphi5 的集成开发环境(的集成开发环境(IDE)下一节 启动 Delphi5,进入它的集成环境,你可以看到如下图所示四个窗口,这四个窗口是开发 Delphi 应用程序的主要工具。在 Delphi5 的主窗口中,包含了 Delphi 的标题栏、桌面管理器、菜单栏、加速栏和组件板五部分,它是管理其他窗口和 Delphi 集成开发环境的工具。其中加速栏提供了文件查看、保存、打开、关闭、添加和删除等功能;组件板用于按类放

5、置各种组件,单击某个选项卡的标签,该选项的卡下的组件就显现出来;桌面管理器(如下图所示)是新版本的 Delphi提供的新功能,它允许我们定制自己的 IDE,并将它保存下来。Delphi5 的对象查看器(Object Inspector)用于查看和设置程序中各控件的属性。与以前的对象查看器相比,它有了一些新的变化,最重要的变化包括图形下拉式列表和属性类别的使用。前者容易理解和使用。它是指对象查看器中某些属性的下拉列表中可以包括图形元素,如下图左图所示。属性类别是 Delphi5 新添的功能,它可以使对象属性按特定的类别进行排放。为了根据类别而不是按名称(默认)来显示属性,可以用鼠标右击对象查看器

6、,选择菜单命令“Arrange|ByGrategory”即可,结果如下图右图所示。代码编辑器用来编写应用程序的代码,也称为 Editor 窗口,如下图所示。在初始状态下,代码窗口掩藏在窗体下,我们可以通过快捷键 F12 将它显示出来。代码编辑窗口的标题显示的当前单元的文件名,缺省为 Unit1.PAS。由于一个应用程序可以有多个单元,所以在编辑器中将有多个选项卡,用于显示本单元代码。在编辑窗口中除了显示单元文件(*.PAS)外,还可以显示当前的项目文件(*.DPR)。选择“View|Project Source”,就可以查看当前项目文件的内容。窗体设计是用户使用最多的一个 Delphi 窗口,

7、它用于将组件放置于窗体上。用户可以使用鼠标或通过 Object Inspector 直接选择某个控件。如果某个控件完全遮盖了另一个控件,可以使用 ESC 键选择父控件,这样我们可以按一次或多次 ESC 键来选择窗体。-Delphi 快速入门-Delphi5 的单元文件的单元文件 下一节 单元文件是 Delphi 程序中最重要的文件,它包含了程序中最主要的源代码,无论是窗体和组件的事件处理过程或单独的源代码都保存在单元文件中。对于初学者来说,Delphi的单元文件比较复杂。这里将对 Delphi的单元文件进行介绍。单元文件分为有窗体文件和无窗体文件两种。每当用户在项目中新建一个窗体,例如使用“F

8、ile|New Form”或加速按钮创建一个新窗体,Delphi 就会自动创建一个相应的单元文件。如果用户需要一个无窗体的单元文件,则应该使用“File|New Unit”菜单命令或在项目管理器中添加一个单元文件。可以说每个窗体对应着一个单元,反过来说则不一定成立。创建一个新的应用程序时,程序只有一个单元文件 Unit1 和一个相应的窗体 Form1。下面是一个典型的带窗体的单元文件结构:unit Unit1;/单元名 interface /接口部分 uses /用来申明本单元内访问到的各单元 Windows,Messages,SysUtils,Classes,Graphics,Control

9、s,Forms,Dialogs,/标准单元 Unit2,Unit3;/用户自定义的单元 type TForm1=class(TForm)/申明一个新窗体类 Label1:TLabel;/窗体上的组件被申明为新类的对象 Button1:TButton;ScrollBar1:TScrollBar;RadioButton1:TRadioButton;ComboBox1:TComboBox;procedure Button1Click(Sender:TObject);/所有的事件也被申明为新类的方法 procedure ComboBox1Change(Sender:TObject);procedure

10、 Label1Click(Sender:TObject);procedure RadioButton1Click(Sender:TObject);private /私有申明 Private declarations public /公共申明 Public declarations end;var Form1:TForm1;/申明一个窗体对象 implementation /实现部分 Uses Unit4;$R*.DFM end.在 interface(接口部分)起始处的 Uses 子句指出本单元用到的各单元,其中有系统的标准单元,我们也可以添加自定义的单元。然后定义了一个新的窗体类 Tform

11、1,窗体上所有的组件都被申明为新类中的一个对象,而且是 Published 类型的。所有的事件处理过程也被申明为 Published 类型,这样就能在设计阶段对组件的属性进行修改或改变处理事件。然后申明了一个新窗体类的窗体对象,该对象名即窗体的 Name 属性。implementation(实现部分)包含了程序的执行代码和其它的隐含申明。不同单元之间的引用可以使用 Uses 语句。例如,如果 Unit1 中需要引用 Unit2 中的变量和对象,可以在 Unit1 的 interface 部分的 Uses 语句中添加单元名 Unit2。但是有一点需要注意的是,Delphi 中不允许循环引用。所以

12、我们不能在 Unit2 的 interface 部分的 Uses 语句中加入对 Unit1 的引用。如果 Unit2 中确实需要引用 Unit1 中的变量或对象,我们该怎么办呢?我们可以在 Unit2 的 implementation(实现部分)手工添加 Uses 语句进行申明:implementation Uses Unit1;interface(接口部分)可以申明一些不同的元素,包括过程、函数、全局变量和数据类型。当申明一个新类并把它放进单元时,可以写入单元的 interface 部分内,这被称为类的接口(也就是它的申明),也可以写入单元的 implementation 部分。变量不同的申

13、明具有不同的作用域。变量只有在它的作用域内才有意义。在定义例程事件或过程内申明的变量,只能在本过程中使用。当程序执行定义该变量的例程时会分配内存给该变量,一旦例程终止,内存会自动释放。在 implementation 部分申明的变量,只能在本单元使用,而不能在单元外使用。在 interface 部分申明的变量,它的作用域将扩展到使用 Uses 语句申明本单元的其它单元中。例如,如果 Unit2 中使用 Uses 申明引用 Unit1,那么 Unit2 中便可以使用 Unit1 中在interface 部分任何申明的变量。-Delphi 快速入门-Delphi 5 Enterprise 版版 1

14、0 大特点大特点 下一节 1.支持 XML 标准,在 Web 上快速提交商业信息。Delphi 简化了数据分布、优化了数据交换过程。对 XML 的支持,使开发人员快速构建的系统具有弹性和可扩展性,以适应 Internet 电子商务带来的新技术浪潮。2.利用 InternetExpress 构建高速 Internet 应用。Delphi 5使开发人员能够用DHTML和XML开发超“薄”(ultra-thin)客户端,并在Internet上快速分发标准 Web 特征的客户端应用程序。InternetExpress 包括 Web Client Page 向导、MIDAS PageProducer 和

15、 WebBroker,用于构建分布式 DHTML 和 XML 应用程序以适应众多客户端和大量数据的需要。3.支持 ADO。利用 Microsoft 的 ActiveX Data Object(ADO)和 OLE DB 技术,Delphi 5 能够快速访问关系型和非关系型数据库,其中包括电子邮件和文件系统。开发人员可以对 Internet 信息进行直接访问,帮助用户更好地进行商业决策。TeamSource 增强了整个开发队伍的工作效率。4.Delphi 5 使整个开发团队能够更协调、更快速地工作。TeamSource 革新了管理源代码的方法。TeamSource 建立在已有的源代码管理和版本管理

16、之上,并通过一个高效的工作流模式对其功能进行扩展,简化了大型、分散的开发团队的源代码管理。5.MIDAS 扩展 Internet 应用。提交适应大交易量及多用户数的应用系统。建立 Internet 应用可以简化对 Internet 或Intranet 上众多的浏览器客户端或 Windows 客户端的管理。MIDAS 支持所有的分布式计算标准,如 CORBA、COM 和 MTS,并能将原有系统与电子商务和 Internet 应用平滑地集成在一起。6.InterBase Express 构建卓越的关键应用系统。Delphi 5 使 Delphi 和 InterBase 更紧密地结合,即将高效率、高

17、性能的开发工具与快速、低维护量和优化配置的中小型关系型数据库等技术融于一体。利用 InterBase Express 组件,VARs、Sls 和 ISVs 能够快速地交付和分发高效的应用系统。7.Borland Translation Suite 将 Delphi 5 应用程序快速地本地化。在可视化地开发不同地域的应用程序的同时,Delphi 还可以管理资源文件的转换,并将转换信息保存在一个库(repository),加速了国际化开发。8.利用 Delphi 的专业 IDE 构建强大、坚固的应用程序。Delphi 的可视化开发环境使开发人员只要在面板上选择相应组件就能够快速建立应用程序和开发原

18、型。Delphi 5 最新 Project Browsing 和 Data Module view 帮助程序员更好地理解代码和数据,从而大大提高开发效率。To Do List 功能和新增开发向导,如 Control panel Wizard,加快了程序编写速度。9.Visual Component Library 增强面向对象开发的威力。开发人员可以创建、定制和重用自己的组件,也可以从 Delphi 的 Visual Component Library 中的 200 多个组件里选适用的组件择。用最新的 Frames 功能开发者能够可视化地为商业逻辑创建组件。开发人员能够开放地访问 VCL 源代

19、码,包括新增的 Decision Cube 组件和附加的 Property Editors,以及为支持 MS Office 而提供的最新 Automation 组件。Delphi基于组件技术大大简化了许多复杂的开发任务。10.进一步增强的调试功能使复杂的项目更快地适应市场需求。用 Delphi 5 对相当复杂的项目进行纠错和改错也会变得十分简单。Delphi 进一步增强的调试功能使开发人员可以更好地理解和掌握程序代码,其中包括 Breakpoint ToolTips、Actions、Groups、FPU/MMx View、以及对 Drag 和 Drop 的支持,等等。-Delphi 标准控件-

20、按钮(按钮(Button)和位图按钮()和位图按钮(BitBtn)下一节 按钮(Button)是 Windows 应用程序界面中最常用、最简单的组件之一。除了按钮之外,Delphi 还提供了一种位图按钮(BitBtn)。这种按钮的不同之处在于按钮上可以显示位图。下面我们通过一个简单的例子来介绍这两种按钮。在窗体 Form1 上放置两个普通按钮和两个位图按钮以及一个编辑框 Edit,然后再添加一个窗体 Form2,在其上放置一个标签和两个位图按钮。程序界面如下图所示:按下表设置各按钮的属性:Form1 Form2 属性 Button1 Button2 BitBtn1 BitBtin2 BitBt

21、n1 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 键,都会执行该按钮的 OnC

22、lick事件。如果同一个窗体上具有多个这样的按钮,则会执行 TabOrder 值最小的按钮的 OnClick 事件。Default:这个属性和 Cancel 属性相似。当用户按下 Enter 键时,将执行该按钮的OnClick 事件。但有一个例外,如果当前拥有输入焦点的控件为另一个按钮时,按 Enter 键时则只执行当前按钮的 OnClick 事件。Kind:这个属性为位图按钮所特有,选择 Kind 属性的某个选项,用于决定该位图按钮的种类每一种位图按钮具有自己独特的功能。位图按钮常用于各种对话框或模态窗口中,根据按钮的 ModalResult 属性值来决定对模态窗口的操作。ModalResu

23、lt:模态值。当我们单击位图按钮时,将把对话框的模态值设为相同的值。它将决定位图按钮的父窗体的关闭方式。如单击 mbOk 按钮,将关闭对话框,返回 mrOk 值。在完成界面设计后,开始编写事件处理过程。程序清单如下:unit Unit1;interface uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,Buttons;type TForm1=class(TForm)Button1:TButton;Button2:TButton;BitBtn1:TBitBtn;BitBtn2:TBi

24、tBtn;Edit1:TEdit;procedure Button1Click(Sender:TObject);procedure Button2Click(Sender:TObject);procedure BitBtn1Click(Sender:TObject);procedure BitBtn2Click(Sender:TObject);private Private declarations public Public declarations end;var Form1:TForm1;implementation uses unit2;/调用 Unit2 的申明;$R*.DFM pr

25、ocedure TForm1.Button1Click(Sender:TObject);begin edit1.Text:=Button1 的 Default 属性为 True;end;procedure TForm1.Button2Click(Sender:TObject);begin showmessage(Button2 的 Cancel 属性为 True);/显示出一个信息框 end;procedure TForm1.BitBtn1Click(Sender:TObject);begin form2.ShowModal;/让 Form2 以模态窗口的显示出来;end;procedure

26、TForm1.BitBtn2Click(Sender:TObject);begin end;end.由于在程序中我们使用了两个窗体,而在 Delphi 中每个窗体对应一个单元,所以程序中便有两个单元(Unit1 和 Unit2)。在 Delphi 中不同单元之间的调用要在调用单元的实现部分(implementation)的开始进行申明,这里为:implementation uses unit2;在添加 Form2 时,系统将自动在项目文件 Project.dpr 中添加生成 Form2 的语句:Application.CreateForm(TForm2,Form2);但是,程序运行时,只显示出

27、 Form1,Form2 是隐藏的。为了显示出 Form2,我们在窗体Form1 的 BitBtn1 按钮的 OnClick 事件中添加如下的语句:form2.ShowModal;单击 BitBtn1 按钮,将以模态窗体的形式显示出来。所谓模态窗体(ModalForm)是指该窗体关闭之前,其他的窗体不能接受输入焦点。按下 F9 编译运行程序,然后按 Esc 键,将弹出一个信息框,如右图所示。由于 Button2 的Cancel 属性设为 True,所以程序运行时,无论何时按下 Esc 键,将启动 Button2 的 OnClick 事件:procedure TForm1.Button2Clic

28、k(Sender:TObject);begin showmessage(Button2 的 Cancel 属性为 True);/显示出一个信息框 end;即按 Esc 键相当于单击 Button2。单击 Edit1,将输入焦点置于编辑框内,然后按下会车键。此时将发现触发了 Button1 的OnClick 事件:procedure TForm1.Button1Click(Sender:TObject);begin edit1.Text:=Button1 的 Default 属性为 True;end;因为 Button1 的 Default 属性设置为 True,所以当输入焦点在编辑框中时,按下

29、会车键时,将触发 Button1 的 OnClick 事件,如下图所示。单击 BitBtn1(标题为“对话框”)按钮,将弹出 Form2 窗体。Form2 为模态对话框,单击 mbOk按钮或 mbCancel 按钮,对话框都将自动关闭。如果你不想让对话框关闭,可以将位图按钮的ModalResult 属性设置为 BrNone。单击 Form1 的 BitBtn2 按钮(标题为“Close”),Form1 将自动关闭。Form1 为非模态窗体,但是 BitBtn2 按钮为 mbClose 按钮,所以它具有关闭窗体的功能。-Delphi 标准控件-编辑框(编辑框(Edit)下一节 编辑框也是 Win

30、dows 程序中常用的组件,它主要用于输入单行文字。下面解释编辑框一些常用属性。属性 说明 PasswordChar 这个属性在一些编辑框组件如 TMaskEdit、TDBEdit 中都有。缺省时该属性为#0,即没有掩码。用户可以自己设置一个掩码,如*,则用户在编辑框中输入的字符都将以*字符显示,而隐藏真实的字符。AutoSize 确定编辑框是否随字体变化而自动变动尺寸,缺省为 True Text 该属性用于显示和保存编辑框中的字符串 MaxLength 确定编辑框最多可以输入的字符数,缺省时为 0,表示可以输入任意多的字符 ReadOnly 确定程序运行时,用户是否可以改变编辑框中的内容。若

31、为 True,表示不可以编辑。AutoSelect 确定当编辑框获得输入焦点时,编辑框中的文字是否自动被选中 Edit 常用的几个事件为:OnChange、OnKeyPress、OnEnter 事件,下面对它们做简单的介绍:事件 说明 OnChange 当编辑框中的内容发生变化时,触发该事件,它是 Edit 中最常用,也是最有用的事件之一 OnKeyPress 当按下一个按键时,触发该事件 OnEnter 编辑框获得输入焦点时,触发该事件 上边介绍的三个编辑框事件非常有用,在 Delphi 编程中经常用到。使用这三个事件,可以实现一些很有用的功能:.使用 OnEnter 事件,可以在编辑框获得

32、输入焦点时,给出提示或触发其它事件。下面的实例在编辑框 Edit1 获得输入焦点时给出一个提示信息,并使将 Button1 失效。procedure TForm1.Edit1Enter(Sender:TObject);begin showmessage(请输入您的密码);Button1.Enabled:=False;end;2.使用 OnKeyPress 事件,可以限制在编辑框中输入的字符的种类。下面的例子限制了编辑框 Edit1 中只能输入数字,而不能输入其它的字符。若按下非数字按键,将发出蜂鸣声。procedure TForm1.Edit1KeyPress(Sender:TObject;v

33、ar Key:Char);begin if not(key in0.9,#8)then begin key:=#0;MessageBeep(-1);end;end;在上边的例程中,Key 为按下的字符,使用 not 方法来判断输入的字符是否为数字(至)或者是删除键8(注意不要连删除键也屏蔽)。如果是非数字输入,使用语句“Key:=#0”将其屏蔽,#0 为空,表示没有输入。3.使用 OnChange 事件,可以在编辑框中的内容发生某种变化时,触发其它事件,如使按钮生效或失效,让输入焦点转移到某个控件上。下面的例程在编辑框 Edit1 中的内容为123456时,使 Button1 生效,同时将输入

34、焦点转移到 Button1 上。procedure TForm1.Edit1Change(Sender:TObject);begin if Edit1.Text=123456 then begin button1.Enabled:=true;Form1.FocusControl(button1);end;end;下面我们将使用 Edit 控件的这些特性编写一个简单的“身份验证”程序,程序中使用了两个 Label、两个 Edit 和两个 BitBtn 控件。其中 Edit1、Edit2 的 MaxLength 属性值都为,Edit2 的 PasswordChar 为*;另外 Edit1 限制了输

35、入,只接收数字。当用户在 Edit1 中输入个数字后,输入焦点自动跳到 Edit2 中;当确认 Edit和 Edit中的学号和密码输入正确(学号为 950755,密码为 123456),Ok 按钮被激活,并获得输入焦点。程序界面如下图所示:unit Unit1;interface uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,Buttons;type TForm1=class(TForm)Label1:TLabel;Label2:TLabel;Edit1:TEdit;Edit2:T

36、Edit;BitBtn1:TBitBtn;BitBtn2:TBitBtn;procedure BitBtn2Click(Sender:TObject);procedure FormCreate(Sender:TObject);procedure Edit1Change(Sender:TObject);procedure Edit2Change(Sender:TObject);procedure BitBtn1Click(Sender:TObject);procedure Edit1KeyPress(Sender:TObject;var Key:Char);private Private dec

37、larations public Public declarations end;var Form1:TForm1;implementation$R*.DFM procedure TForm1.BitBtn2Click(Sender:TObject);begin close;/关闭窗体 end;procedure TForm1.FormCreate(Sender:TObject);begin Edit1.text:=;/创建窗体时,让编辑框为空 Edit2.text:=;BitBtn1.Enabled:=false;end;procedure TForm1.Edit1Change(Sender

38、:TObject);begin /当编辑框 Edit1 中为 6 个字符时,输入焦点跳到 Edit2 if length(edit1.Text)=6 then form1.FocusControl(Edit2);end;procedure TForm1.Edit2Change(Sender:TObject);begin /如果两个编辑框中的输入是正确的,Ok 按钮被被激活并获得输入焦点 if(Edit2.Text=123456)and(Edit1.Text=950755)then begin bitbtn1.Enabled:=true;form1.FocusControl(bitBtn1);e

39、nd;end;procedure TForm1.BitBtn1Click(Sender:TObject);begin showmessage(您通过了身份验证。);close;end;procedure TForm1.Edit1KeyPress(Sender:TObject;var Key:Char);begin /限制编辑框的输入,只接收数字 if not(key in0.9,#8)then begin key:=#0;messagebeep(1);end;end;end.-Delphi 标准控件-掩码编辑框(掩码编辑框(MaskEdit)下一节 掩码编辑框(MaskEdit)是一种特殊的编

40、辑框。使用它可以设计出许多复杂的输入 格式。在选用 MaskEdit 之后,需要为它设计一个输入格式。方法如下:首先在窗体上将 MaskEdit 选中,在对象查看器(Object Inspector)中找到 EditMask 属性,双击它,弹出一个如下图所示的对话框。对话框左上角的 Input Mask 编辑框用于输入掩码格式。掩码格式可以分为三部分,每个部分之间用分号“;”分开,如“!90:90:90:;1;_”。下面解释各输入格式符的意义:1.输入格式的第一部分是掩码本身,也就是数据输入格式。在这一部分用一些特殊的格式符来表示应输入的字符类型及格式,如“!l0A9:Cll”这样一串输入格式

41、掩码。常用的MaskEdit 输入格式符有:格式符 意义 l 和 L l 表示该位置只可能是一个字母,可以用光标键跳过它,但是不能是其它类型的字符。L 该位置必须是一个字符。a 和 A a 表示该位置只可能是一个字母或数字字符。A 表示该位置必须是一个字母或数字字符。c 和 C c 表示该位置只可能是一个字母,C 表示该位置必须有一个字母。9 和 0 9 表示该位置只可能是一个数字,0 表示该位置必须有一个数字。和 格式字符或格式符。格式符则和LL/000000;1;_ 掩码的第二部分取为表示系统分隔符也将作为数据保存。第三部分的“_”表示在掩码编辑框中为空时,用“_”来表示空位。我们也可以用

42、空格来标识空位。又如一个邮编如 PO-100083,其中 PO 表示邮政,是每个邮政编码中都有的前缀,可以这样设计掩码格式:!PO/000000;1;_ 在掩码设计对话框的右侧是 Sample Masks,这里有系统预设的常用的掩码格式,如电话号码(Phone)、日期(Date)等。我们可以选择一个,然后进行必要的调整。对话框左下部是一个 Test Input 栏,我们可以在这里输入字符,以检测输入格式是否令人满意。Delphi 标准控件-Memo 组件组件 下一节 Edit 和 MaskEdit 组件都只能编辑单行文本,Delphi 的 Memo 组件提供了多行文本的编辑功能。下面解释 Me

43、mo 组件常用的属性。属性 说明 Lines 这是 Memo 组件最常用,也是最有用的属性,它用来显示和保存 Memo 组件中的内容。Scrollbar 很多组件都有这个属性。用于设定组件有否滚动条。它有四个值:SSNone 表示既无水平滚动条,也无垂直滚动条;SSHorizontal 表示只有水平滚动条;SSVertal 表示只有垂直滚动条;SSBoth 表示两者都有。当用户要显示的文本或其它的内容较多时,建议选用 SSBoth。WordWrap 用于设定 Momo 组件是否具有自动折行功能。WantTabs 这个属性只在 Memo、RichEdit 和 DBMemo 组件中使用。通常在切换

44、当前焦点控件时,我们通常使用 Tab 键。但在上述三种组件中,编辑文本时常用 Tab键来跳过若干个空格使文本对齐,这时就会有冲突。所以应将 WantTabs 设置为 True,这样子在组件内就可以使用 Tab 键来编辑文本。Memo 组件常用的方法:.使用剪贴板(Clipboard)我们可以使用 CutToClipboard、CopyToClipboard 和 PastFromClipboar 这三种方法,实现将 Memo 组件中被选择文本剪切或复制到剪贴板上,以及将剪切板上的内容粘贴到 Memo组件中。将 Memo 中的选中文本剪切到剪贴板的语句如下:if Memo1.SelLength0

45、then 2.文本的添加 利用 Lines 属性,可以增加、删除一行文本,也可以移动一行文本。下面的代码将文本添加到 Memo 中的最后一行:Memo1.Lines.Add(将文本添加到 Memo 中);3.文件的保存和装载 我们可以将 Memo 组件中的文本保存成文本文件,也可以将文本文件装载到 Memo 中。这须要配合使用 SaveDialog 组件和 OpenDialog 组件。将 Memo 中的文本保存为文件的语句为:If SaveDialog1.Execute then /打开保存对话框 Memo1.Lines.SaveToFile(SaveDialog1.FileName);/保存

46、为文件 上边的语句先打开保存对话框,然后将 Memo 中的文本保存到一个文件中,文件名为我们在 SaveDialog 中输入的文本。在 Memo 中装载文本文件的语句为:if Opendialog1.Execute then Memo1.Lines.LoadFile(Opendialog1.FileName);执行上边语句将打开 Opendialog 对话框,然后将选中的文本文件装载到 Memo 中。下面我们使用 Memo 组件的这些特性制作一个简单的文本编辑器,可以实现文本的拷贝复制,并可以进行文本的保存和装载。当然程序的功能还很简单,我们还可以进一步扩展。这里是入门教程,所以不宜太复杂。程

47、序的界面如下图所示:源代码如下:unit Unit1;interface uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;type TForm1=class(TForm)Memo1:TMemo;Button1:TButton;SaveDialog1:TSaveDialog;OpenDialog1:TOpenDialog;Button2:TButton;Button3:TButton;Button4:TButton;Button5:TButton;Button6:TButton;But

48、ton7:TButton;procedure Button1Click(Sender:TObject);procedure FormCreate(Sender:TObject);procedure Button2Click(Sender:TObject);procedure Button5Click(Sender:TObject);procedure Button6Click(Sender:TObject);procedure Button3Click(Sender:TObject);procedure Button4Click(Sender:TObject);procedure Button

49、7Click(Sender:TObject);private Private declarations public Public declarations end;var Form1:TForm1;implementation$R*.DFM procedure TForm1.Button1Click(Sender:TObject);begin memo1.Lines.Add(在末端添加文本);end;procedure TForm1.FormCreate(Sender:TObject);begin memo1.Lines.Text:=这里是 Memo 组件示例;end;procedure T

50、Form1.Button2Click(Sender:TObject);begin if Memo1.SelLength0 then Memo1.CutToClipboard;end;procedure TForm1.Button5Click(Sender:TObject);begin if savedialog1.Execute then memo1.Lines.SaveToFile(savedialog1.FileName);end;procedure TForm1.Button6Click(Sender:TObject);begin if Opendialog1.Execute then

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服