- 73.50 KB
- 2022-07-28 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
题型:填空题20×1简答题5×6程序填空题11×2编程题2×14资料整理的不是完全完整,结合这些重点可以在书上再仔细复习。希望好好复习,大家都能通过!第一章Delphi简介1.1delphi概念Delphi的主要特点:Borland公司的Pascal编译器Delphi以objectPascal为编程语言Delphi充分发挥了windows的强大功能Delphi提供了丰富的32位可视组件库Delphi在数据库和网络处理功能方面是同类产品中最强的1.2delphi7集成开发环境主窗口:包括菜单栏,工具栏及组件栏;对象游览器:包括属性页和事件页;对象树性列表;窗体设计器;代码编辑器;1.3delphi程序的基本结构扩展名为dpr的是项目文件;扩展名为pas的单元文件;扩展名为dfm的是窗体文件单元文件的格式如下:P10单元头:该单元指定单元的名称接口部分:该部分从保留字interface开始,到保留字implementation之前结束。接口部分可以有uses语句,还可以用来声明常量,数据类型,变量,过程和函数等。其中uses语句必须紧跟在保留字interface之后。\n在整个程序中都可以被访问实现部分:这些声明可以在本单元中被访问,不可以在其他单元中被访问,类的方法必须在实现部分实现初始化部分:从保留字implementation开始,到保留字finalization之前结束。一个单元中可以没有该部分。结束部分:一个单元中只有出现了初始化部分,才可以有结束部分第二章ObjectPascal语言基础2.1词法符号保留字标识符:1标识符由字母,数字或下划线组成2标示符的第一个字符必须是字母或下划线3标识符的长度不应超过255个字符4不能将保留字用作标识符5标识符不区分大,小写标准标识符是可以重新定义的,而保留字却不允许重新定义因system单元是自动应用的,不必也不允许在引用部分列出system单元Absolute指令字用于指示相同类型的另一标识符存放在同一段内存区域中2.2常量和变量布尔常量是指false和true这两个值用#引导一个整数,整数表示该字符的ASCII码用‘’‘’表示单引号字符2.3简单数据类型数据类型分为简单数据类型,字符串类型,结构类型,指针类型,过程与函数类型和可变类型等是一种常见的分类方法有序数据类型特点:1、数据的分布是离散的;2、除了第一个元素外,其他任何元素都有一个前驱元素;3、除了最后一个元素外,其他任何元素都有一个后继元素关系运算符号:=,<>,>≡,>,<≡,<整型数的逻辑运算符:not,and,or,xor\n左,右移位运算符:shl,shr基本字型有ansichar和widecharPascal语言提供的自变量为实型的标准函数由:1绝对值函数abs(x):函数值为x的绝对值2平方函数sqr(x):函数值为x的平方3正弦函数sin(X):函数值为x的正弦,其中x的单位为弧度4余弦函数cos(x):函数值为x的余弦,其中x的单位为弧度5反正切函数arctan(x):函数值为x的正反切,函数值的单位为弧度6指数函数exp(x):函数值为指数e的x次方7对数函数in(x):函数值为x的自然对数8平方根函数sqrt(x):函数值为x的平方根9舍入函数round(x):对实数x作四舍五入,结果为整数10截尾取整函数trunc(x):截去实数x的小数部分,结果为整数objectpascal提供了丰富的日期时间处理函数,常用的有:1DaTe():函数返回系统当前日期,无参数,返回数据是TDateTime型2Time():函数返回系统当前时间,无参数,返回数据是TDateTime型3Now():函数返回系统当前日期和时间,无参数,返回数据是TDateTime型4StrToDaTe(’日期字符串’):字符串转换为日期时间函数,返回数据是TDateTime型2.4结构类型结构数据:—集合类型(set)—数组类型(array)—记录类型(record)—文件类型(file)—类类型(class)—类引用类型(classreference)—接口类型(interface)objectpascal中规定了\n基类型只能是不超过265个有序值的集合,集合元素的叙数值必须介于0~~255之间集合运算有交(*),并(+),差(—),运算对象是两个相同类型的集合,运算结果也是集合。例如,若有为[1,3,5],y为[3,4,5],则x*y为[3,5],x+y为[1,3,4,5],x-y为[1]数组的定义:Typearray[indextype,。。。,indextypen]ofbasetype①对于通用字符串类型string,指定其最大长度(0------255)。此时string型被视为shortstring型②shortstring型不是以null(空字符#0)作为字符串的结果标志,而是将长度保存在字符串数组下标为0的储存单元中③ansistring以full结束记录的定义:Type记录类型标识符=record域1:类型1域2:类型2。。。。。。。域n:类型n2.6语句流程语法形式:输入语言Read([文件变量]变量列表)Readln([文本文件变量]变量列表)有回车省略文本变量参数表示从键盘输入中读取数据输出语言Write([文件变量]输出项表)Writeln([文本文件变量]输出项表)有回车注释和编译指令\n//单行注释内容{注释内容}(*注释内容*)Case语句的语法格式:Case选择表达式of常量1:语句1常量2:语句2。。。。。。。。常量n-1:语句n-1[else语句n;]End;保留字case后的选择表达式,其值必须是有序类型,如整型,字符型,布尔型,枚举型或子界型P45页程序While语句的执行过程是:先计算布尔表达式的值,当值为true时,执行循环体中的语句序列,然后重新计算布尔表达式的值,若仍为true则再执行一遍循环体While语句的特点是先判断条件,当条件为true才执行。当第一次条件为false时,循环次数为0Repeat语句的执行过程是:先执行repeat到until之间的语句,然后计算布尔表达式的值,若为false,则再执行repeat到until之间的语句,若为true则推出循环体Break过程,可使程序的执行流程立即退出该层循环Continue过程将使程序直接转入下一次循环\n2.7过程与函数Procedure过程名(参数表)Function函数名(参数表):返回数据类型过程由过程首部、局部声明部分和过程体组成。函数由函数首部、局部声明部分和函数体组成。参数的传递如下:1值参数声明时,形参前面无任何修饰2变量参数声明时变参传递的是一个变量的地址,即实参把地址传递的是一个变量的地址,即实参把地址传递给变参,变参和实参指向的是同一地址空间。在过程和函数中对变参的修改直接影响实参3常量参数声明时,形参的前面用保留字const修饰过程和函数重裁是指定义多个名称相同,而参数列表不同的过程和函数。编译器根据调用时实参表中的参数个数和类型,自动匹配一个重裁的过程或函数。重裁过程或函数使用默认参数可能会导致二义性错误2.8程序与单元的结构单元结构:1单元首部2接口部分:定义的这些标识符可以被引用该单元的程序访问3实现部分:在实现部分定义的标志符不能被其他单位或程序访问4初始部分5终结部分2.9标识符的作用域标识符的作用域是指其在程序中起作用的范围。单元中接口部分定义的标识符包括数据类型,类,常数,变量,过程和函数导等他们在引用该单元的程序(项目文件,其他单元)中都可以被访问第三章Delphi中的面向对象\n3.1面向对象程序设计概述将具有相同属性和行为的对象抽象为类,每个对象都属于某个类。通过继承关系构成类的层次结构,子类可以直接继承父类的性质和功能。3.2类与对象类是具有相同或相似属性和行为的一组对象的共同描述,是对相似对象建立的模板。对象由属性和方法构成。属性是描述对象静态特征的一组数据项:方法描述了该类对象动态特征的一个操作序列,体现对象的行为特征或功能。定义类:type类名=class数据成员成员函数或过程End;注意:在函数或过程名前必须带有类名。ProcedureCircle.Draw;声明对象一般形式为:var对象名:类名;访问对象成员:对象名.成员构造函数和析构函数的定义,作用和特点:构造函数是专用的创建对象和初始化对象的成员函数。定义时用保留字constructor,函数名通常为create。在定义的构造函数中,不仅可以为类对象分配内存空间,而且可以打开文件或数据库读取数据或控制设备复位。析构函数是专用的删除对象和为对象进行善后处理的成员函数。定义时用保留字destructor,函数名通常为Destroy。在析构函数中,不仅可以释放相应的内存资源,还可以保存数据信息,关闭文件或者数据库,控制设备复位并关机。3.3类成员的访问权限封装是把一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。访问权限分为:private:私有数据成员、成员函数、过程。不能被类所在单元以外的程序访问,但本单元是可见的。Protected:保护……。\n被该类及该类的所有派生类访问,并成为派生类的私有成员。Public:共有……。被该类以外的类访问。Published:公布……。在设计期间的对象观察器窗口中可见。Automated:自动……。用于响应对象链接与嵌入自动化类型信息的公共接口。3.4继承继承的实质是在既有类的基础上构造新的类,即新类从一个或者多个已有类中继承数据和方法,同时增加或重新定义数据和方法,由此构造出一个新的类型,称为派生类。已有的类称为基类。继承的主要目的是实现代码的重用。派生类的定义:type派生类=class(基类){派生类新增或改写部分}End;派生类的构造和析构函数:在派生类构造函数的开始部分,使用inherited保留字来调用基类的构造函数,首先初始化基类的成员,然后构造派生类的特有成员。在派生类的析构函数的结尾部分,使用inherited保留字来调用基类的析构函数,最后释放基类的成员部分。构造函数越上层越早被调用,析构函数越下层越早被调用。3.5多态性多态性是指同一的操作,在不同的对象中具体实现过程不同。ObjectPascal支持两种多态性和运行时的多态性。编译时的多态性通过重载来实现,运行时的多态性用虚方法来实现。重载函数或者过程用保留字overload来说明。例如:Functionmax(x:integer):integer;integer;虚方法的定义如p79虚方法与动态方法的区别:在运行时才能确定对象方法的调用地址,这种调用方法为动态联编。虚方法与动态方法在功能上是等价的,不同在于虚方法额调用速度比较快,动态方法的代码比较少。\n抽象类与抽象方法:使用指令字abstract说明,则该方法称为抽象方法,包含抽象方法的类称为抽象类。定义:procedure过程名;virtual;abstract;第四章4.1VCL基础四种基本的组件类型:标准组件,自定义组件,图形组件,非可视组件。图形组件与标准组件的的区别在于:①标准组件可以获得输入焦点,即可用Tab键依次获得焦点;图形组件不能获得输入焦点。②标准组件可以包含其他组件,即可以是其他组件的父类;图形组件不能包含其他组件。③标准组件具有一个WINDOWS句柄,图形组件没有WINDOWS句柄。4.2窗体设计窗体组件的属性值设置为组件名.属性:=属性值。重点看一下caption、visible、hint。窗体的方法和事件详见P91.4.3常用VCL组件对于memo组件的编程填空要注意。列表框组件(listbox)的常用属性见P1044.4菜单设计对菜单项可以指定其加速键,方法是在菜单项的Caption属性中,在要作为加速键的字母前添加符号“&”,则运行时该字母带有下划线,按下Alt+加速字母键就执行此菜单项。4.6对话框的使用Showmessage过程:调用Showmessage过程会弹出一个简单的对话框,对话框上显示提示信息及“确定”按钮,单击该按钮,就关闭对话框。Inputbox函数:调用Inputbox函数显示一个能够接受哟娜防护输入数据的对话框,并返回用户输入的数据值。Inputquery函数:与Inputbox函数最大的不同是他的返回值是一个逻辑值。第五章\n5.1程序调试错误的种类及处理方式:1、语法错误:没有遵守语言的语法规则而产生。2、运行错误:程序在执行过程中发生了错误。程序试图打开一个不存在的文件或试图修改一个只读文件,程序运行过程中出现除零错误或用户输入了非法数据等。3、逻辑错误:运行的结果与设想的结果不同。解决逻辑错误可以从三步骤来解决:猜测出程序可能出错的地方,并在此设置断点。让程序执行到断点停止运行,观察所有中间变量及对象内容。让程序单步运行,同时观察每一个变量及对象内容的变化。事件变量和相关数据的值:提示文本,watchlist窗口,evaluate窗口。5.2异常保护和处理1、异常保护与try…finally…end;语句Try…//被保护的代码块Finally…//处理语句End;2、响应异常和try…except…end;语句Try//以下为保护代码块…If<异常条件>raise<异常对象>Except//以下为异常处理快On<异常类1>do<处理过程1或语句1>On<异常类2>do<处理过程2或语句2>On…Else<其他处理过程或语句>End;通过继承类exception可以自定义新的异常类。第6章Delphi7与数据库6.1数据库简介\n数据库可以长期存储、有组织、可共享的数据集合。数据库系统(databasesystem,DBS)是指具有数据管理功能的计算机系统。它一般由数据库、数据库管理系统和应用系统构成。数据库系统根据的组织方式主要分为层次数据库系统、网状数据库系统、关系型数据库系统很面向对象数据库系统等几类Delphi支持关系型数据库,关系型数据库由表组成。标的定义了事物的一组属性数据,称为记录。表的列定义了事物的某种属性,称为字段。6.2Delphi7的数据库访问机制Borland推出了一个数据库引擎(borlanddatabaseengine,BDE)BDE管理器(BDEAdministrator)是设置和管理BDE的工具,它可以用来管理BDE中的数据库别名和驱动器。DatebaseDesktop的使用:1、定义数据库别名2、设置工作目录及私有目录3、建立数据表结构4、保存数据表文件5、建立索引(1)建立主索引(2)建立次索引6、设置有效性检查7、设置口令8、设置参照完整性9、输入部分数据数据库游览器可用于定义数据库别名、查询或编辑数据库中的各类信息,如数据库的参数设置、各类据表文件的结构及数据,也可以使用SQL语句进行查询6.3数据库组件使用TTable组件连接并显示数据表的一般步骤1、把一个TTable组件放到窗体上2、TableName属性指定要访问的表3、TDataSource组件放到窗体上,设置DataSet属性指向该TTable组件4、把数据控制组放到窗体上,设置TDataSource属性指向该TDataSource组件\n5、把TTable组件的Active属性设为TrueTablel.Fields[0].AsString:=EditlEdit.TextEditl.Text=TablelFields[0].AsStringEditl.Text:=Tablel.FieldByName(‘Name’).AsString当表结构改变引起字段索引号改变时,就要修改相应的程序,所以使用第二种方法比较好。DataSet属性:表明于当前数据源组件相联系的数据集组件对象的名字Enabled属性:如果Enabled属性值为True(默认值),数据控制组件将显示数据:如果Enabled属性值为False,则所有与此数据源组件相连的数据控制组件都将不显示任何数据。Columna属性用于指定TDBGrid对象中各栏目的特征6.4TField对象的使用动态字段对象与永久字段对象的概念,区别,使用场合:Delphi会为数据中的每一个字段自动生成一个动态的字段对象。数据集的结构和其他信息改变,当应用程序重新打开这个数据集时,就会基于最近的结构和信息重建所有的字段对象。当数据集关闭时,这些对象也跟着取消。动态对象的最大特点是适应性强,缺点是要想改变字段的显示属性、数据格式就要编写代码,不能把某些字段暂时隐去,也不能增加新的字段。永久字段最大的好处是可以在设计时设置它的属性。可以选择部分字段,增加新的字段。再永久字段对象列表中删除某些需要保护的字段,避免用户访问这些字段;在数据库查询或特定数据表的字段基础上定义新的字段,代替现存的字段;改变原有的字段的显示和编辑属性。6.5数据集的操作数据集的打开与关闭:1、设置Active属性Table.Active:=True;//打开数据集,数据集组件对数据表进行读写操作。Table.Active:=False;//关闭数据集,数据集组件不能对数据表进行读写操作。2、调用Open和Close方法Table1.Opene//打开数据集和Table1.Close//关闭数据集。\n移动记录指针:1、Bof属性:如果Bof为True,表明当前记录指针所处的位置为数据集的第一条记录;反之,则不是第一条记录。2、Eof属性:如果Eof为True,表明当前记录指针所处的位置为数据集的最后一天记录;反之,则不为最后一条记录。3、First方法:将记录指针移至数据集的第一条记录处,并使之成为当前记录,同时将Bof属性值设置为True。4、Last方法:将记录指针移至数据集最后一条记录处,并使之成为当前记录,同时将Bof属性设置为True。5、Next方法:将记录指针后移一条记录,并使之成为当前记录。如果记录指针指向了数据集的最后一条记录,将Eof属性设置为True。6、Prior方法:将记录指针前移一条记录,并使之成为当前记录。如果记录指针指向了数据集的第一条记录,将Bof属性设置为True。7、MoveBy方法:将记录指针从当前记录开始向后或向前移动若干条记录。格式如下:functionMoveBy(Distance:Integer):Integer;限制记录集:1、SetRangeStart方法和SetRangeEnd方法可以过滤记录。SetRangeStart方法用来限制记录集的开始,SetRangeEnd方法用来限制记录集的结束,调用ApplyRange方法使限制生效,调用CancelRange方法取消为数据表设定的限制范围。2、使用数据集的Filter属性Filter属性值是一个用来指明数据表过滤标准的字符串,Filter属性决定了过滤器是否起作用。查找记录:1、使用FindKey方法。使用Table的FindKey方法或FindNearest方法。2、搜索特定记录(Locate)。FindKey或FindNearest方法只能在TTable组件中使用,如果使用的是TQuery或TStoreProc组件,就要使用Locate方法来查找记录。Locate函数适合于所有数据集组件,也适合于TTable组件。AppendRecord方法与InsertRecord方法:这里两个方法分别与Append方法与Insert方法相似,都是用于在表中插入一条新纪录,但AppendRecord方法与InsertRecord方法比Append方法与Insert方法\n更简单、更方便一些,不需要调用Post方法。过程形式如下:ProcedureAppendRecord(ConstValues:ArrayofConst);ProcedureInsertRecord(ConstValues:ArrayofConst);建立数据表的主从关系:设置表之间的主从关系是通过设置从表的MasterSource属性和MasterField属性来实现的,且从表必须按MasterField属性中指定的字段建立了索引。6.6TQuery组件TQuery组件和TTable组件的比较:同属于数据集组件。不同之处为:TQuery组件主要功能是用来支持SQL语言访问本地或远程数据库;TQuery组件允许用户同时访问多个表,而TTable组件一次只能访问一个表格;TQuery组件访问的是表格中的特定数据内容,而TTable组件只有在提供过滤或限定检索范围时才能访问表格中的特定数据内容,否则访问的将是表格中的全部数据。掌握P193BDE综合实例。6.8ADO技术通过ADO不仅能够访问基于SQLServer的所有数据库,而且可以通过ODBC访问所有支持ODBC的数据库。ODBC是一种采用开放式结构进行数据库链接的接口标准,是一种开放的独立于厂商的API应用程序接口。掌握P208ADO应用实例第七章Windows编程基础7.1动态链接库(DLL)Windows允许同时运行的多个程序共享一组函数的单一备份,于是引入了动态链接方式,将可共享的程序代码以及各种数据资源编译成单独的模块。一般项目的格式如下:Program程序标识符;Uses单元列表;Begin程序体;End.\nDLL项目文件的格式如下:Library程序标识符号;Uses单元列表;Exports过程和函数标识符列表;Begin程序体;End.两者的区别的原因在于:Delphi编译器是一句项目文件头的保留字是Program还是Library来决定编译生成的是EXE文件还是DLL文件。若DLL要输出共其他应用程序调用的函数或过程,则需要在其项目文件的保留字exports之后一一列出,这些DLL函数或过程将被编译成远程地址调用。Window系统自身包含三个DLL,分别是Kernel,User,GD1。DLL调用必须使用标准方式,其一是静态引用,其二是动态引用。静态引入:加载引用的DLL文件是,库文件的查找顺序是:1、当前路径;2、Windows系统的安装目录;3、Windows的系统目录system和system32;4、列在环境变量PATH中的路径。引入方法:1、最简单的是名字引入;2、使用索引引入;3、若名字引入会引起标识符冲突,可以使用换名引入。