第1章Delphi的编程语言ObjectPascal

上传人:大米 文档编号:568460506 上传时间:2024-07-24 格式:PPT 页数:112 大小:352.50KB
返回 下载 相关 举报
第1章Delphi的编程语言ObjectPascal_第1页
第1页 / 共112页
第1章Delphi的编程语言ObjectPascal_第2页
第2页 / 共112页
第1章Delphi的编程语言ObjectPascal_第3页
第3页 / 共112页
第1章Delphi的编程语言ObjectPascal_第4页
第4页 / 共112页
第1章Delphi的编程语言ObjectPascal_第5页
第5页 / 共112页
点击查看更多>>
资源描述

《第1章Delphi的编程语言ObjectPascal》由会员分享,可在线阅读,更多相关《第1章Delphi的编程语言ObjectPascal(112页珍藏版)》请在金锄头文库上搜索。

1、第1章 Delphi的编程语言Object Pascal1.1 认识Delphi1.2 Object Pascal语言基础1.3 Delphi 中的程序调试及异常处理本章小结置思历但教兄比阁滓帝册持隧态病纯赊案谬咬钡受茧料肋症菏缀含融耿擦第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal1.1 认识Delphi u感受Delphi编程uDelphi的特点uDelphi编程环境及其作用uDelphi应用程序的文件组成uDelphi中几个重要概念uDelphi学习方法本节要点练习良沃弱炉助殆板占丸翻谬防驼咀召琶旱函轴钟轰国赣伤认粉腺潘慈靴鹏该第

2、1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal感受Delphi编程下面在Delphi的集成开发环境中编写一个最简单程序,并运行。让大家对Delphi的编程有一种感性认识,并体验Delphi快捷、方便、高效的编程环境。演示犁岁码激陷诣偷闯睁浊厉凄祟闭养琢抿磐茵阻樊询完挑驾篡噪滞贰窜舞否第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalDelphi的特点Delphi最早是Borland公司于1994年底发布的一种可视化编程语言。它以Object Pascal作为基本开发语言。目前已从Del

3、phi 1.0发展到Delphi 7.0。它适用于Windows 9x, Windows xp,Windows 2000或更高的版本操作系统,同时也推出Lynux操作系统下的kylix版本。u编程效率高、代码质量好u领先的数据库技术u强大的Internet应用开发功能u与Office 的巧妙结合答极凿拷兆躁抒兜艘弦阉喳盏儿亿筋睡赦竞伊汛锁彻攘梨造隧踢樟封攀辆第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal可视化编程语言u编程语言的发展 机器语言汇编语言高级语言(结构化面向对象可视化)u面向对象的程序设计(Object Oriented P

4、rogramming)u可视化(Visual)编程语言 Delphi,VFP,VB,VC 等,由组件来构造应用程序。市后受建员汉城挣串捍忻裸鸳获吐睬贮亩念膏激替裴块驳内凝被仓仲轿秸第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal面向对象的程序设计u对象:把要处理的数据和处理这些数据的方法组合成的一种数据类型。对象有如下三大特性: 封装性:把数据和处理数据的方法定义在同一数据类型(对象)中,一般只能用该对象中的方法来处理这些数据。 继承性:可以用已定义的对象来构造其子对象,并且子对象可以访问其父对象中的数据和方法。 多态性:为动作赋予一个可

5、由对象序列共享的名称,对象序列中的每个对象均以适合于自身的方式实现该操作。u事件驱动讥苟浩辕辅照朴罕琅逃屉哦进球游茅校窄闻洁佬唆表马妓易睡惨摹永啸哄第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal对象的多态性实例 implementation$R *.DFMtype TPerson=class Name:string; weight:integer; constructor Create(aName:string;aWeight:integer); function GetTitle:string; virtual; /父类中使用虚方法

6、function GetInformation:string; end;TStudent=class(TPerson) School:string; Constructor Create(aname:string;aWeight:integer;aSchool:string); function GetTitle:string; override;/子类中使用覆盖 end;constructor TPerson.Create(aName:string;aWeight:integer);begin inherited create; name:=aname; weight:=aweight;en

7、d;function TPerson.GetTitle:string;begin result:=Name+ is a Person;end;堕织烬乱颇篱胯色足寨碉尤眼牺浚嗣较霉曰棚永芦懒会潦歌兔涌右间固涤第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal对象的多态性实例(续)Constructor TStudent.Create(aname:string;aWeight:integer;aSchool:string);begin inherited create(aname,aweight); school:=aschool;end;fu

8、nction TStudent.GetTitle:string;begin result:=Name+ is a Student of +school;end;procedure showtitle(Person:TPerson);begin showmessage(person.getInformation);end;procedure TForm1.Button1Click(Sender: TObject);var aPerson:TPerson; aStudent:TStudent;begin aPerson:=TPerson.create(David,60); AStudent:=TS

9、tudent.create(Young,65,Tsinghua); showtitle(aperson); /显示某人相关的信息 showtitle(aStudent); /显示某学生相关的信息 aperson.free; astudent.free;end;摔留耗搞釜红鹃淄涧迄续甥券灸朱惹幅滥优捆剐跑敞肢彭堪猿惕牢滑邦颓第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalDelphi编程环境及其作用菜单栏与工具栏组件(Component)栏对象树状列表(Object TreeView)对象监视器(Object Inspector)窗体设计器

10、(Form Designer)代码编辑器(Code Editor)项目管理器(Project Manager)丘鸵痊溃堡党摧酚麻剖洒肋智如蘑颐国怀铲覆别泡榜馏辛窑妙脆哩瞥倪膜第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalDelphi应用程序的文件组成Delphi应用程序的文件主要有: 工程文件(.DPR);单元文件(.PAS);窗体文件(.DFM)等。述犁稻员拆醛才怒在西说扫奉揭走酚震挎瞧店么籽郁程旋辕榔淌壕平峙访第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalDelphi中几个重

11、要概念u类(Class):Delphi中的对象类型数据,它由类的成员构成。u对象:类数据类型的实例。u组件:组成应用程序的构件,其类型一般为类类型。我们常用的是组件的属性、方法及事件。u组件的事件:能够把发生于某一组件上的操作同一指定的方法进行关联。当该操作发生时会自动执行指定的方法。窗体或窗体上的组件接收事件,事件可由用户引发(例如键盘或鼠标操作),可由系统引发(例如定时器事件),也可由代码间接引发(例如当代码装载其他窗体时产生的Load事件)施荡半叛慢廖躬讣腕獭希丛爹禄扬歇佰与腕拢僚松侄赴春篇吮欺仲厂脊塑第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言Obj

12、ectPascal类的成员域(字段):类中的数据。方法:类中的过程或函数。属性:类似于类中的域,但它本身并不占存储空间,对它进行存取操作,可以是直接存取,也可以是调用相应的方法,它可以是只读,只写或读写。鸟热桔鳃上探俊右饭询郎宁高着醇睬苇刀糜析干那萌酒辱甄渍爪沮羔刹崖第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalDelphi学习方法u转变编程思维方式u重视上机u应用为主u多参考他人的编程经验和技巧(Delphi参考书,Delphi网站)供诚程亚怂塑吸舆秋奴擞掉蔓危嘲信蚊她番葫有捣揣喳卵充涌蠕殖爆祟佳第1章Delphi的编程语言Objec

13、tPascal第1章Delphi的编程语言ObjectPascalDelphi网站Delphi 专家:Delphi 园地:Delphi程序员之家:5.Delphi学习方法警半见氛础扑沾嚼庶湃怖惺叮祖衣诵搞争姥翁醚瞎服荣簿术铸劲菊珊制髓第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal本节要点 (1.1)u熟悉Delphi集成开发环境主要组成部分及其作用:菜单栏与工具栏,组件栏,对象树状列表,对象监视器,窗体设计器,代码编辑器,项目管理器等。u掌握Delphi应用程序的文件组成:项目文件(.DPR);单元文件(.PAS);窗体文件(.DFM)

14、等。u了解几个重要概念:类,对象,组件,组件的属性、方法及事件等。山移货猛瀑覆栗闻搽谱博盟吸秉抄恭汾庆感苏摆导慈鸡吝馋烘琳腥删已可第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal练习(1.1)u理论1. Delphi集成开发环境主要有哪几个部分组成,并说明各部分的作用。2.一个Delphi应用程序主要由哪些文件组成?3.预习Object Pascalu上机实训教程1.1,1.2良殴虞鞭螟政冤撵蛔辛窘敛郸因建海前殖荧柠毯亥省倒辞喀啃篆衣错伪记第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPasc

15、al1.2 Object pascal语言基础 u标识符u数据类型 u变量和常量u运算符和表达式u语句u过程和函数u程序和单元本节要点练习较阅葵馈抬秋巴呼康膛豹泊随桌痉癣犊豁鹰此蝴即耶红忆耿歼几零剔抓赏第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal标识符u标识符必须由字母(AZ、az)、数字(09)或下划线组成,不区分字母的大小写。u标识符的第一个字符必须是字母或下划线。u标识符的长度不应超过255个字符,如果超过255字符就只有前255个有效。u不能将保留字用作标识符,如IF、AND、DO等。u尽量不要重新定义已预定义的标识符,如一些

16、标准的数学函数Sqrt、Sin等。怪殊匪袄垂胆像疽卤棉绊绦挨颈绞碌金旨米绕条预哦仑颈缝劈氯爷水筹总第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal数据类型 有序类型(ordinal) 实型(real)整型(integer)字符型(character)布尔型(Boolean)枚举(enumerated)子界(subrange)数组(array)记录(record)集合(set)文件(file)类(class)类引用(class reference)接口(interface)简单类型(simple)字符串类型(string)构造类型(stru

17、ctured)变体类型(variant)指针类型(pointer)过程类型(procedural)霄矽应濒篇肢脏株顷斜惯事吭量油简苑观卵碳唇顾傲牟孵凭办拉蛊评慑专第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal整型(integer)u常用整型:Integer-21474836482147483647有符号 4字节Cardinal04294967295 无符号 4字节u基本整型:Shortint-128127有符号 1字节Smallint-3276832767有符号 2字节Longint-21474836482147483647有符号 4字

18、节Int64263 263 -1有符号 8字节Byte0255 无符号 1字节Word065535 无符号 2字节Longword04294967295 无符号 4字节熄皋亮姬惨铲赖饯狈叠浴耀蝎咖帜势集束凋勿切瓜屯挞惭寂恰逢供丫址粹第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal字符型(character)u常用字符型:CharANSI字符集 1字节表示: a或#97 或#39 空格u基本字符型:AnsiChar ANSI字符集 1字节WideChar Unicode字符集(前256个是ANSI字符集) 2字节肄晒破园眉榔蚊韭棵吧不薪煮胎

19、彼勇吭嫂阉逻犬约入膀臀载贯茸牙会笋丹第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal布尔型(Boolean)uBoolean(1字节)False True Ord(False) = 0 Ord(True) = 1Pred(True) = False Succ(False) = TrueuByteBool (1字节), WordBool (2字节), LongBool (4字节)False True Ord(False) = 0 Ord(True) 0Pred(False) = True Succ(False) = True昆暗凸涅岳续垦滩

20、绎荚沤淬榨盒堕骤膀诱响低贮缩意缚瑟羊抛莫占会啊苇第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal枚举(enumerated)type 类型名=(标识符1,标识符2, 标识符n);如:type TMyColor = (mcRed, mcBlue, mcGreen, mcYellow, mcOrange); Answer = (ansYes, ansNo, ansMaybe);其对应的序号为0,1,2睛孕犬骏损钦傻讯痒咬斋甘倦上乃满赣彭镶涛剃垛柞裸娄药碘犯淹额啮鸥第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言

21、ObjectPascal子界(subrange)type SomeNumbers = -128.127; Caps = A.Z;type TColors = (Red, Blue, Green, Yellow, Orange, Purple, White, Black); TMyColors = Green.White;寇僵摔庐概景昭燎进彼敲行炯纸朋阻棍济饶比茹溢剑季辨秘药剩叙团伯抢第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal实型(real)u常用实型Real 5.0 10-324 1.7 103088字节u基本实型Real48 2.

22、9 10-39 1.7 10386字节Single 1.5 10-45 3.4 1038 4字节Double 5.0 10-324 1.7 103088字节Etended 3.6 10-4951 1.1 10493210字节Comp -263+1 263 8字节Currency-922337203685477.5808 922337203685477.5807 8字节勒眨辅喧咱阳莽犊综红颗寨夯畦绍咎从疥郴代赵朔归沛是狼谊眨汝硒磨脊第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal字符串类型(string)u常用字符串String $H+ A

23、nsiString , $H- ShortStringBORLAND BORLAND Youll see Youll see 无字符Line 1#13#10Line 2中华人民共和国 u基本字符串ShortString 255 个字符AnsiString 231 个字符WideString230个字符耗晰湍光啪语题韵晚扯郭抢蔷毒谋馏谷竹柏凹枫以垣槛夜枫支崩仙救各访第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal数组(array)type 类型名=array有序类型 of 基类型;如:type MyArray= array1.100 of

24、Char;type TMatrix = array1.10, 1.50 of Real;誉腔庭卯须惨菠廖锥凉揍园寇沧棺彻畔述模奉违影靶虹绑利脉刊踩冤主远第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal记录(record)type 类型名 = record 域名:类型;. 域名:类型;end;如:type TDateRec = record Year: Integer; Month: (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); Day: 1.31; end;天自

25、狙蛀槽螟宴扼究锹东羡囱雪氮佯颠碌尼疚运责浪伎海梯秸操澳民蓑漾第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal集合(set)Type 类型名= set of 有序类型;如:type TIntSet = set of 1.250;set of Byte;set of (Club, Diamond, Heart, Spade);set of Char;集合值表示:1, 3, 5, 7, 9 ,a,b,c陷斜鉴踞蜘零辐篙费歇敬闹丘腑秆啸塞茶十傲胜烁绰括讹石卞侵刀扑潭檬第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言

26、ObjectPascal文件(file)type PhoneEntry = record FirstName, LastName: string20; PhoneNumber: string15; Listed: Boolean; end; PhoneList = file of PhoneEntry;黄撤沂抓耐晾墓路连置艳棒啃热浦仁聘咒罕瑰眼手桓搀卫百韩芹砍衣兄螟第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal类(class)type TListColumns = class(TCollection) private FOwner: T

27、CustomListView; function GetItem(Index: Integer): TListColumn; procedure SetItem(Index: Integer; Value: TListColumn); protected function GetOwner: TPersistent; override; procedure Update(Item: TCollectionItem); override; public constructor Create(AOwner: TCustomListView); function Add: TListColumn;

28、property Owner: TCustomListView read FOwner; property ItemsIndex: Integer: TListColumn read GetItem write SetItem; default; end; /类不能定义在函数或过程中摇瞎绘趾佣哦浊黔伶史脾端柿建俭曰典碳码牵炬踏敲生卿渊苑筐牙腮吏症第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal类引用类型(class reference)Type 类引用类型名=class of 类类型;如:type TClass = class of TO

29、bject;Var anyobj:Tclass;Anyobj变量可以引用任何其他类。类引用类型在用户要调用一个类的方法,但编译时又不知道该类的类型时非常有用。几郴徒瘦帝翌画壹堂秘逐决津颅忿任镶涂涣辜埠占菊陪驴工烂餐硬镇乙孪第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal接口(interface)type 接口名 = interface (父接口) 各类中共同的方式或属性列表end;它体现的是多个互不相关的类之间的相同行为。芭辟烙懊挡裴鸳抨肩黍磷橙筛俩烂烈猩积涅击捡缘心祈僧篇邑踩价织橱珠第1章Delphi的编程语言ObjectPascal第

30、1章Delphi的编程语言ObjectPascal变体类型(variant)变体类型与其他数据类型结合使用会产生类型的自动转换。var V1, V2, V3, V4, V5: Variant; I: Integer; D: Double; S: string;begin V1 := 1; integer value V2 := 1234.5678; real value V3 := Hello world!; string value I := V1; I = 1 (integer value) D := V2; D = 1234.5678 (real value) S := V3; S =

31、Hello world! (string value) 廷彝显好络浦蓑枪僳梁辛实掘缩桩哑袁蚂抹暴颖色毙褪般峦箩智据戴幽拷第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal指针类型(pointer)type 指针类型名= 类型对字符串类型和类类型,其内部实现方式均用指针。但为方便使用,Delphi把许多运用指针的地方隐藏起来,用户在编制程序时可以不把其当作指针来处理,而让Delphi来处理容易出错的问题。辕试侩乌锹寇嗽夫炊液寺盏鼎榴肢感侠敷殉倍逐荧豢添赂休默戎故坷爵晌第1章Delphi的编程语言ObjectPascal第1章Delphi的编程

32、语言ObjectPascal过程类型type TIntegerFunction = function: Integer; TProcedure = procedure; TStrProc = procedure(const S: string); TMathFunc = function(X: Double): Double;掉崖窘摈份捡马燥拒垮甲综哇善秀缨放着昧炉阁埋需橙脑奏明氛硬涉受赐第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal变量和常量u变量u常量真常量类型常量胃狮蜒尽贩纳喘腰亩庸贪苹溉募啼秘锡持储恰俘殴犁羚竭干务唾嗣胰拽煌第1

33、章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal变量var 变量名1,变量名2,变量名n:类型;如:(全局变量在说明时还可以给初值)var X, Y, Z: Double; I, J, K: Integer; Digit: 0.9; Okay: Boolean; CrtMode: Byte absolute $0040; s:string; /字符串变量访问 rd: TDateRec; /记录变量访问枉虱焙倚审虫删姨骤榨魔仰刮渔栋矮甩南尘台秀象巍琢钠炼捣诌崇釉粳就第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言

34、ObjectPascal字符串变量访问(S:String)u作为字符串来访问S:=abcde;u作为单个字符来访问S1,s2,s3等访问单个字符,类似于数组中的每个元素。饮敝夏哭柴闺机刀囊圭剃资仇览蜡锑揪办智黔标逗装凯冗别淤惟自蛮证辊第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal记录变量访问(rd:TDateRec)u点域访问Rd.year:=2001; rd.month:=feb; rd.day:=12;uWith do访问With rd do year:=2001;type TDateRec = record Year: Integ

35、er; Month: (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); Day: 1.31; end;抵咙绽邯摘网茹闽禄嚏打翔气衅蛰洱呕登腿坊砾与翌没痴冕嘉虾相愧尿毒第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal真常量const 常量名=常量表达式;const Min = 10; Max = $100; Center = (Max - Min) div 2; Beta = Chr(225); NumChars = Ord(Z) - Ord(A) + 1; Mess

36、age = Out of memory; ErrStr = Error: + Message + . ; ErrPos = 80 - Length(ErrStr) div 2; Ln10 = 2.302585092994045684; Ln10R = 1 / Ln10; Numeric = 0.9; Alpha = A.Z, a.z; AlphaNum = Alpha + Numeric;真靠铅钉呈奖座渝猎荒段失民颧鞍卧献循怜踏渴球第浑厢汽脐堤部唁联兵第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal类型常量const 常量名:类型=值;(

37、兼容老版本,要加编译开关$j+;现在可以直接在全局变量中赋初值)Consti:integer=23;Digits1: array0.4 of Char=(0,1,2,3,4);Digits2: array0.4 of Char = 01234;type TCube=array0.1, 0.1, 0.1 of Integer;TMonth=(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);TDate = record D: 1.31; M: TMonth; Y: 1900.1999; end;const Maze:TCube =(0, 1),(2

38、, 3),(4, 5),(6,7);SomeDay: TDate = (D: 2; M: Dec; Y: 1960);熟科电换压揍屿蒸祁豢庆座僚搏烬腔擂防隔桑炕到先乒岿囤秀津衅骤吮竹第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal运算符和表达式u算术运算(Arithmetic operator)u关系运算(Relational operator)u布尔运算(Boolean operator)u位运算(bitwise operator)u字符串运算(String operator)u集合运算(Set operator)u指针运算(Point

39、er operator)u类运算(Class operator)u取地址操作()运算符的优先级抒级蓉肃犯站肃发徐膛妖裸娇捻蒸酱胶嫂蠢熟何林微樊跟煮抡贬冠曰豺图第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal算术运算(Arithmetic operator)算术运算符:+, *, /, div(整除), mod(取余)运算量有整型、实型等, div和mod只能是整型,结果类型同运算量。例:5/2 2.55 div2 25 mod 2 15 mod 2 1-5 mod 2 -1-5 mod -2 -1藻着豹酝饿盗启站的三仗伍国研聊团铜胜标传蓖

40、驮拎德守碘鸿臼壮定浩遍第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal关系运算(Relational operator)关系运算符有 =, , , =运算量有简单类型、字符串类型等,结果为布尔类型。例:60=30 true2.54-43.2 falseabcdefalse true风热个郝合仗痛街严扬攻袋隙差龋逸龙踞层佃缄陵氧涕淤鸿拼怒绍绳咽头第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal布尔运算(Boolean operator)布尔运算符有 not, and, or, xor运

41、算量和结果均只能为布尔类型。例:True and false falseFlase or (60=30) true苫彪艳墨晶奶壤刁幕闸溪扯蓝采箔泽背翟姻盏抄肯栓募描谜缅掠讽口颧倍第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal位运算(bitwise operator)位运算符有 not, and, or, xor, shl, shr运算量和结果均只能为整型。例:Byte(Not $ff) $00Byte($10 and $11) $10Byte( $10 or $1b) $1bByte( $20 xor $21) $01Byte( $10

42、 shl 2) $40Byte( $20 shr 1) $10遁廊焚摆惧暂特趴惕站柿拷唾溅趴龋嘲渐施臭万搁许掩亥语村庆含速果长第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal字符串运算(String operator)字符串运算符主要指连接两个字符串的运算符 +例:I am a+ student. I am a student.文件名:+abc.doc 文件名:abc.doc呆朴合售甩顷第明捂衔陵悦且嫌老砷习树杭娟亢鼎惦瘦设研坟瓤妆咒汰覆第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPasca

43、l集合运算(Set operator)集合运算符有 +(并), - (差), * (交), = (包含), = (相等), (不等), in (成员检查)漓坐种侍傀疮绅鸽耶暂虱浅屏乍杰撤颤闪相甩趁挡盟谁职艺刚呕鸽邻荣垫第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal指针运算(Pointer operator)指针运算符有 +, -, =, , 则侈夫妆埋苹扒酞身幢涎跋撩叠酣料鼓痕兢摘哆疵案浑晨朱铭智奄革威彰第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal类运算(Class opera

44、tor)类运算符有 as, isAs:将一个类实例转换为另一个类型的类。如:Sender as TButtonIs:用来判断一个类实例的类型,结果为布尔型。如:Sender is TComponet捆臂订挖印艾擂貌沉曾窜凹礼翔些颈玩怔皋升橇韵诊安矗团场弘辨附键想第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal取地址操作()是单目运算符,其作用是返回变量的地址。娠窟桃稚跳介萄咀邑熟烬充茂酝吕授骗勋晾米簿睡饰秤口落箭吝袜氛尚琢第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal运算符的优先级

45、, not*, /, div, mod, and, shl, shr, as+, - or, xor=, , , =, in, is高低轰钢矢笛川亭基炳裁筹愈蛔瞬鹃恩衷骄愈谎耶鸣确骨眷杀霉喇媒儡油用境第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal语句u注释符单行注释符/;多行注释符或(*)u说明语句对数据类型、变量、常量、标号、函数及过程等进行声明的语句,编译后不生成可执行代码。语句以分号结束。u赋值语句和复合语句u选择语句u循环语句uWith语句党听豹陶涅菌溅交阎谍菱挡沿呸膳邯乔搐棠我馒瓮弦置回示姑紊惭端痞垣第1章Delphi的编程语

46、言ObjectPascal第1章Delphi的编程语言ObjectPascal赋值语句和复合语句u赋值语句(变量名:=表达式)X := Y + Z;Done := (I = 1) and (I 100);I := Sqr(J) - I * K;SomeArrayI + 1 := P;TMyObject.SomeProperty := True;u复合语句(把多个语句组合成一个语句)begin Z := X; X := Y; Y := Z;end;斯绝占撬汹南辙澜砂兢旺拥梳殖附制拜弦叮窿俺内压们答星梭惧慨桓寂剐第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言Obj

47、ectPascal选择语句uIf语句uCase语句uGoto语句尸眉音蒂兔坝凉九分趁迷汰户担伪受筑皱铣诺痰世翌滑昔茶获蔼懒瓣瞳颜第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalIf语句if J = 0 then Exit /此处不能用;else Result := I/J;注:过程exit将终止子程序if J 0 thenbegin Result := I/J; Count := Count + 1;End /此处不能用;else if Count = Last then Done := True /此处不能用;else Exit;if

48、布尔型表达式 then 语句1 else 语句2似扑驾取膀屎用凰息跪调将醉忌疯秘粳商侯协互蜕风攻舱揍引陵蔡滤奖泄第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalCase语句case 有序类型表达式 of 选择项1: 语句1; . 选择项n: 语句n;else 语句;End注:各选择项中的值要唯一。case I of 1.5: Caption := Low; 6.9: Caption := High; 0, 10.99: Caption := Out of range;else Caption := ;end;咖予晚更斧迁孵远晒聚午团笋侩久

49、歇竿杯彝几劲溺苛潜鸥效谐密叫豺狼蕊第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalGoto语句label StartHere /说明一个标号.StartHere: Beep;goto StartHere;注:标号可以是标识符或09999的数。嘉毅谊刊斋虹过傲旱公沛虎着狭浪漾类瘤悯艰疫碘真柯匿瘸缎恢凤淌祝瓮第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal循环语句uFor语句uwhile语句uRepeat语句痪秸农颐晕贵蓉撤吧厌役萧框梯扼物赞累匡星曳坚喝仲瓮琳阀赊潘粪看罚第1章Delph

50、i的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalFor语句for 有序类型变量:=初值 to 终值 do 语句或for :=初值 downto 终值 do 语句注:有序类型变量的值增(to)减(downto)1,越过终值结束循环。max:=data1;for I := 2 to 12 do if DataI Max then Max := DataI;唐助短驯热汹姜鳃荧逾恋绅辫躇十鞭焙烛拢两晒臻孩饺训虾枷俏维郧决耐第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalwhile语句while 布尔表达式

51、do 语句注:布尔表达式为false结束循环。max:=data1;I:=2;While I Max then Max := DataI; I:=I+1;End;堪痞电皿素脖惑洽吝瓷捐皆讼戳矗珍翁咯梁花王清燎隔孽肘楔窜眩据莎芜第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalRepeat语句repeat 语句1; .; 语句2; until 布尔表达式;注:布尔表达式为true结束循环。max:=data1;I:=2;Repeat if DataI Max then Max := DataI; I:=I+1;Until I12;柿另眯前浚烫

52、焚椿坏谐卜脏剧呵赞林调博酌竣检奸拒碌冤救阶热羚络拱轰第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalWith语句访问记录中的数据域或类中的成员(域,属性或方法)。 with obj do 语句注:指类或记录类型变量的名字,下同。 with obj1, ., objn do 语句或with obj1 do with obj2 do . with objn do 语句注: obj1, ., objn等分别作用于与其对应的各自成员,可嵌套。举例钱焦牛祸鸯腋辕煎护捻肌拐嫁识哲委刨抖怀唆鲜怯搪幕落麓适镭躁阵睛撞第1章Delphi的编程语言Objec

53、tPascal第1章Delphi的编程语言ObjectPascalWith语句举例with edit1 do begin text:=时间; /相当于edit1.text:=时间; enable:=false; /相当于edit1.enable:=false; end;with label1,edit1 do begin Caption:=label one; /相当于label1.Caption:=label one; Text:=text one; / 相当于edit1.Text:=text one; end;with form1,edit1 do Text:=text one; / 相当

54、于form1.edit1.Text:=text one;变炭拽联聚榜棱饮赌洗分锚纷佳红逆缕凝时荒宦谣勒兜正妄昏疤纲灯西言第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal过程和函数u过程u函数u常用过程或函数椿浚夫键称疹趟粟廓呛惨裸骏桅滨陕慕窄懂抱疏泽巡伍杂宗街轮厌僧掣詹第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal过程procedure 过程名(形参列表); 过程头类型声明常量声明变量声明过程声明函数声明begin 语句;end;注:作为语句来调用。举例说明部分语句部分过程体现计脑

55、梁惭染勺页箕迪札谤涯嘉聂秩袖春勇郝炽骑职崭兴血词弘泼骗果尾第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal过程举例/把整型数转化为字符串procedure NumString(N: Integer; var S: string); var V: Integer;begin V := Abs(N); S := ; repeat S := Chr(V mod 10 + Ord(0) + S; V := V div 10; until V = 0; if N 0 do begin if Odd(I) then Result := Result

56、* X; I := I div 2; X := Sqr(X); end;end; /p:=power(2.0,3)迟挎沮手阴桩佐练捆性倦韧求轰潜胀赂铣仁沫窟隧饥斡捎哟然技遵滴进纵第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal常用过程或函数(sysutils或system单元)Abs 求绝对值Sqr 求平方值Sqrt 求平方根Sin 求正弦Cos 求余弦Exp 求e的幂Ln 求自然对数Pi 3.1415926535897932385Date 取日期Time 取时间Length 求字符串的长度Pos 求子串的位置Delete 删除子串Cop

57、y 复制字符串Chr ASCII值对应的字符 Ord 取得序号Round 实型四舍五入为整型Trunc 实型取整Inttohex 整型变为十六进制数串Inttostr 整型变为字符串Strtoint 字符串变为整型Datetostr 日期变为字符串Upcase 转化为大写字母Uppercase 转化为大写字符串Lowercase 转化为小写字符串Random 产生一个随机数Odd 判定奇数中绥抖赛漆垛挫吨存偿煎冶障镐唬鲜省译剑科增树蹿烦椭口漾慷尚羞滨室第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal程序和单元举例program 程序名;

58、程序头uses子句 引用单元类型声明常量声明变量声明过程声明函数声明begin 语句;End. 程序结束说明部分语句部分程序体藻蔼漳龚锯灯躇部肌揍时蠕熔额镐尽弓芭迁孤郊寒旋点廖荆赠渝唇每溉臆第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal程序举例program Editor; /程序对应的文件名(.dpr)必须与程序名相同。Uses Forms, REAbout in REABOUT.PAS AboutBox, REMain in REMain.pas MainForm; $R *.RES /编译指示begin Application.T

59、itle := Text Editor; Application.CreateForm(TMainForm, MainForm); Application.Run;end.浆耳葬偷污柯运暂盟垮纠郴夯杭洒钓累锈谐乡萎杭叛羞匡验碑箕濒塑潦蕊第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal单元unit 单元名; 单元头Interfaceuses子句 引用其它单元 接口部分implementation uses子句 引用其它单元 实现部分initialization 初始化代码finalization 结束代码end. 单元结束举例孟占纱鸦受值搽

60、湾仑予趁一筋束茂骄纳笑且背爸慈乏苑蝶讹岂苇赊枕捧涎第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal单元举例unit Unit1; /单元对应的文件名(.pas)必须与单元名相同interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private Pri

61、vate declarations public Public declarations end;var Form1: TForm1;implementation$R *.DFMprocedure TForm1.Button1Click(Sender: TObject);begin close;end;end.嫁塑纵跌柒窝菏郴陨嫌滋芜肃柳堑湿县匆净雇卸厚扯也七垣锤彭樱志勾玖第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal本节要点(1.2)u会使用Delphi的帮助系统(Object Pascal Reference主题)查阅Object

62、Pascal的各语法要素u逐渐熟悉Object Pascal的常用数据类型、变量、常量、运算符和表达式,并掌握它们的用法。u熟悉各语句的格式和用法,并使用本讲稿中的各示例编写完整程序,来验证各语句的用法。u逐渐掌握过程和函数的编写和调用。u熟悉程序和单元的结构。边瓦街折方嚏个撬懈亏加仔步衫进岗喻猩拇引突枕抨驱列摹焉毙顺龋肇桓第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal练习(1.2)u理论教程P28-30选择题1-5,简答题2-3u上机实训教程1.3,1.4补充:使用Delphi编写一实现排序功能的程序。演示唱医钞召科发劝盎剔禹恋鲜泳徒

63、阮伯邹褪曰咏砌壬耿友肪己掏序忌篱枯子第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal1.3 Delphi 中的程序调试及异常处理u程序调试u异常处理本节要点练习渐摈林渴巫貉嚷否蓝醇年裂因赐椰憎预吵作耻镇默附蝴拐景赔舱妊仓瘤禽第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal程序调试u程序设计中的错误类型u设置编译选项u控制程序的执行u使用监视列表窗口(Watch List, Ctrl+F5)u使用求值/修改对话框(Evaluate/modify, Ctrl+F7)肆侵湖宜段巨航徽券辜捂

64、康紫峭匝罚获硫锑谭琐唉狡痪赶旨驶愈峙擎榔跑第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal程序设计中的错误类型u设计期错误u编译期错误u运行期错误u逻辑错误 焕厩疑银漫瑞炭易构荷契浸滋钥雏鸭磕巍斌码桑燕摔馆宁卯氮称琢撩挠盐第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal设计期错误 这一类型的错误较容易发现和纠正,因为DelPhi能对特定的值进行合法性检查,发现这类错误,DelPhi将显示一个警告窗口,以提示用户纠正错误。 这种错误类型发生在使用DelPhi进行可视化设计的时候,通常是

65、因为给组件的某个属性输入了非法的值。例如按钮组件TBitBtn的NumGlyphs属性取值为 1.4,若输入的值不在此范围,则发生错误。毒铝岂琶刑嫌侧践汉歇箩祷幻班俩邯妨拿启侈颅洁荚骄毕锤替拔恫背洋珍第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal编译期错误 编译期错误也称为语法错误。在DelPhi中,通常是当程序代码违反了object Pascal语言的语法规则时发生这类错误。比较常见的语法错误有标识符未定义或拼写错误;语句的末尾漏掉分号;赋值语句中漏写昌号;begin与end末配对;括号末配对;引号末配对等。 如果程序代码中有语法错误

66、,编译不能通过,代码编辑器的状态行将给出错误信息提示,并加亮有语法错误的代码行。封俱耳灸钒闪酵卒般腮注克剑纺洋凶岗泌奋丢靛仓赤碘讣翻糊捅减经锡啪第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal运行期错误 程序虽然通过了编译,但运行失败,这种错误称为运行期错误,例如应用程序试图打开一个不存在的文件,或者运算时出现被零除等情况。 DelPhi能够检测出这类错误,并退出当前模块。此时,如果不能确定错误发生在什么地方,可以用DelPhi内部集成的调试器查找错误的位置。例如可以用单步执行命令,让程序一条语句一条语句地执行,或者添加一个监视窗口,观察

67、某个变量的变化情况。涧靛琢婆乓泄猪具有对酸酱泳患海江风福徘甜完清肺感沏垢玄冗网亦埠笛第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal逻辑错误举例 逻辑错误是指程序通过了编译,也能执行,但执行的结果跟预期的不同。 逻辑错误有时比较难找,因为Delphi不能自动识别这类错误。这时就需要用到内部集成的调试器,通过控制程序的运行、监视程序的输出或观察变量的值,把错误逐步定位在一个较小的范围内。粪炒强滴欣婿促逼酬驮溪疾翟毁疲嗡师判愧远氰廖枫骗铀腔咆通觉播庇躁第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言Object

68、Pascal举例(逻辑错误)编程实现符号函数的功能 :var x,y:real;begin x:=-2; y:=0; if x=0 then if x0 then y:=1 else y:=-1; showmessage(floattostr(y);end;坡氦灿拽倚郑曙浊桩酞廖驭教敌烛筏堰疹烈趁滦溃肉裂榆搀杨涧链藤肯怠第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal设置编译选项 设置编译选项用来控制Delphi程序的编译方式。 可以使用如下二种方法进行设置:(1)使用Delphi菜单Project/Options-Compiler(2)

69、在程序中加$Z+或$Z-设置或清除编译选项,其中Z为编译开关字母。 建议,在程序调试时,将所有检查性的选项设置上,优化特性清除,以利于调试;当程序调试通过后,应把那些加重程序时间、空间负担的编译开关清除,设置优化代码功能,再编译一次,以生成简练的可执行文件。鉴俘园资怖渗掺淋避瓤芯涪今糠形作壳题氖儒韶邢肚霸唯畦屿服瘫师乡韶第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal编译选项1代码生成(Code generation)距妻舵底濒说你痒佯骆缘匙稿掷显拄执迪伊兢铸威袋芒芥给货水屈了坞形第1章Delphi的编程语言ObjectPascal第1章

70、Delphi的编程语言ObjectPascal编译选项2运行时的错误(Runtime errors) 信息(Messages) 侦航橇残檬削茅赂国抓剑去琵贼憎函犯簿瘫笼抒琉磋市谋胳乡钓返呜敛钦第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal编译选项3语法选项(Syntax options)盾头碑僻蘑聚氰臻狡惧烫旧疮次鲤畔歹宋叭媚僧魂垦缴弧亥旭雁航凋哀枢第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal编译选项4调试(Debugging) 举例敏尼乘析轧醋蹲藏嗅非俏斯颤搞毁菊泌幌稗斤孤殿

71、胃赔涸笨腋楚阜全工染第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal举例(Range checking)$R+或$R-var a:array 1.3 of byte; i:integer;begin for i:=1 to 4 do begin ai:=i; showmessage(inttostr(ai); end;end;捎痴徽票铰抖抉撵裂络皮朔慕魂狈谴挽反饵棱煮孜瞅陕皖虽求呜疡秉弘但第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal控制程序的执行u设置断点(Toggle Brea

72、kpoint/F5)u执行到光标处(Run to cursor/F4)u单步执行(Trace Into/F7,Step Over/F8)举例晰迷式商磋吾膊遁戍泊企神辟窘帐辣腕铜卡巳反软川呸膛祭往鹏架摩绽胚第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal举例(控制程序的执行)编程实现符号函数的功能 :var x,y:real;begin x:=-2; y:=0; if x=0 then if x0 then y:=1 else y:=-1; showmessage(floattostr(y);end;截直立鹤观绷喉吸蹭扔穿岭今戌擒蔑他眯得羔

73、靛倡源裳佑状威鸥栋炎敢鬃第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal异常处理uDelphi对异常的自动处理u编程人员对异常的处理Tryexcept语句Raise语句Tryfinally语句u自定义异常类及其使用挡始椒砚镊琅翱蝇辜谣珊瘁蓝禁嫩觅臀奏爬奋思添钱癸讳决竖烛滁要芋敷第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalDelphi对异常的自动处理 Delphi为应用程序提供了一套缺省的自动异常处理机制,即当前模块发生错误后退出当前模块并给出错误信息,而并不立即引起应用程序的中止

74、。 若程序在Delphi的集成开发环境中运行,在给出相应错误信息的同时,还尽可能定位出错的位置。例如:var i:integer; r:real;begin i:=0; r:=8 / i; showmessage(floattostr(r);end;另室桨囚炊玖萍春孜穗褐贞默芍篓晚达鹃缅毛低仙芹茧屹蹬纺润殷暗泞坤第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalTryexcept语句(格式1)格式1:Try 语句Except 语句End;功能: 若执行Try与Except之间的语句发生异常,则执行Except与End之间的语句对该异常作出处

75、理,并清除异常,否则(没有异常)跳过Except与End之间的语句。举例迷逛樟细白孰窝孵叙舔致孺刮在袒乾辫咋控已畜沮添绰双泪颊超韵檬帘佩第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal举例(格式1)举例:var i:integer; r:real;begin i:=0; try r:=8/i; showmessage(floattostr(r); except showmessage(除数为零); end;end;籽巍骗亩妆报住扒吭再阴衔祟吊橙草捷炔搏现炔谁宁调猫蝉壶要秃兼鬃抵第1章Delphi的编程语言ObjectPascal第1章De

76、lphi的编程语言ObjectPascalTryexcept语句(格式2)格式2:Try 语句Except on 标识符: 异常类 do 语句 on 标识符: 异常类 do 语句 End;功能: 当执行Try与Except之间的语句发生异常时,依次查找on后的异常类,直到发现某个匹配的异常类即执行其do后语句,并清除异常,然后跳过Try与Except结构,执行end后的语句。 若在on后没有找到匹配的异常类,则异常仍然存在。举例辞土匡胶瘟邹高轴舜愧颈壳涎岭夕掐箔蔼宏妮碗调毡莹卉标番根崩企空免第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal

77、举例(格式2)var i,j:integer; r:real;begin j:=20; try i:=strtoint(edit1.Text); j:=10 div i; r:=10/(i-1); showmessage(正常,j=+inttostr(j)+,r=+floattostr(r); except on E:EConvertError do showmessage(异常,非数值+#13+E.Message); on EDivByZero do showmessage(异常,整数被0除); on EZeroDivide do showmessage(异常,实数被0除); end;end

78、;巍骚沈瘤碎徽彼觅嚷漠瓣续冤橱篙罕际而蓬辽府橙演宰邀氦怖她封对闲衰第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalTryexcept语句(格式3)格式3:Try 语句Except on 标识符: 异常类 do 语句 on 标识符: 异常类 do 语句 else 语句End;功能: 当执行Try与Except之间的语句发生异常时,依次查找on后的异常类,直到发现某个匹配的异常类即执行其do后语句,若在on后没有找到匹配的异常类,则执行else后的语句,并清除异常。举例莫关徽搽渊镇伺澈沸哺康谍桶惋属摄娄枣烤患油袋款混润炯潦始趾循卸矗第1章De

79、lphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal举例(格式3)var i,j:integer; r:real;begin j:=20; try i:=strtoint(edit1.Text); j:=10 div i; r:=10/(i-1); showmessage(正常,j=+inttostr(j)+,r=+floattostr(r); /raise exception except on E:EConvertError do showmessage(异常,非数值+#13+E.Message); else showmessage(异常,除数为0

80、); end;end;炼儡寐域戈诀疮区银轨牧虎抠苇庐逻京虐肋挤孜草虫讽索乎捉末涨贵晴卡第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalRaise语句在Except后语句处理了异常,则清除异常,但可在其后使用Raise重新产生该异常,再提供给外层Try来处理。var i:integer; r:real;begin i:=0; try r:=8/i; showmessage(floattostr(r); except showmessage(除数为零); raise; end;坚脾热拇叁孝卉辙历琳又摔扑羹潦筛待狡繁腹骏箕南芯伦螺硷锋坝涟芬习第

81、1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalTryfinally语句格式:Try 语句Finally 语句End;功能: 不管执行Try与Finally之间的语句是否发生异常,均可保证执行Finally后的语句,它不清除异常。 通常用于在使用某资源时失败后以保证能释放该资源。举例皆蛹加梅筒讹会抹肾酿住只胸枯庭柴含牲刃傍扯袁柿戮懊募傍妨芹勉讹拟第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal举例(Tryfinally语句)var f:textfile ;/定义文本类型的文件变量beg

82、in assignfile(f,c:msdos.sys); /文件变量f指向c:msdos.sys文件 Reset(F);/文本文件以只读方式打开 try write(f,One string);/写入一个字符串,由于不能写,发生异常 finally CloseFile(F); showmessage(文件已关闭); end;end;唇漂痹颅迂午达人掸陕抨伊战君敖瞎檀奥辖和幽咳妒硅挨屁腐独碌告废簇第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascalDelphi中的异常类Delphi提供的所有异常类都是类Exception的子类。常用异常类 E

83、DivByZerO:整数被零除 。EIntOverflow:整数超出其能表示的范围 。EZeroDivide:浮点数被零除Eoverflow:实数上溢出。Eunderflow:实数下溢出。ERangeError:访问数组时范围超出。邢滨压曙席炉可断操作豌闭编哉秤黄红揉坷甄炬沪恕眨蹭手漠药挛爷精凸第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal常用异常类 EConvertError:在字符串与其他数据类型进行转化,或类调用Assign方法时产生错误。EInvalidCase:类之间的强行类型转换(使用as关键字)时产生错误。EAbstrac

84、tError:试图调用一个空方法(Abstract 方法)。EInvalidPointer:错误的指针调用。EAccessViolation:试图非法访问内存。EOutofMemory:无可用内存分配。EStackOverflow:程序堆栈溢出。EDatabaseError:数据库操作出错。EDBEngineError:BDE(数据库引擎)出错。EInOutError:输入输出Eabort:哑异常,不产生任何错误信息,通常由Abort过程产生 。姚迂邢村史取例窑腕拿义荧找棍藐抗祝粉绰刚腮院硼侍软劳饶凯蛾苫翰贵第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言Obj

85、ectPascalException类u主要属性Message:异常发生时,显示在异常对话框中的提示信息。HelpContext:指定帮助内容的ID号。u主要方法Create (const Msg: string):创建带简单信息的异常类。CreateFmt (const Msg: string; const Args: array of const):创建带格式信息的异常类。蚜捌细漳戍西汹譬诣坚绝授搔驴贴忌蹋脸鸦嗣谣修任颊冈料诱啮似五馅叔第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal自定义异常类及其使用u定义异常类type MyErr

86、or=class(Exception) end;u在函数中创建自定义异常类function StrToIntRange(const S: string; Min, Max: Longint): Longint;begin Result := StrToInt(S); if (Result Max) then raise MyError.CreateFmt(%d is not within the valid range of %d.%d, Result, Min, Max);end;煽鸽纺褐躇芯怠篆王疮撵暖囊纳您枪卡凹貉攫获砾痛相累尊男革夕晦翌伯第1章Delphi的编程语言ObjectPasc

87、al第1章Delphi的编程语言ObjectPascal使用自定义异常类procedure TForm1.Button5Click(Sender: TObject);begin try StrToIntRange(1234,1,100); except on e:MyError do showmessage(发生自定义异常#13+E.Message); end;end;驹榨走叶殴肄蕾澜惋濒轴腕冶牡逛资虾浅烘算午靖烧帘绳裕媳多笑奉忿阻第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal本节要点(1.3)u熟悉程序设计中的错误类型。u掌握常用编译

88、选项的含义及其设置。u掌握程序调试方法(设置断点、执行到光标处、单步执行及使用监视列表窗口等)。u掌握异常处理技术( Tryexcept语句, Tryfinally语句及常用异常类 等的使用)慌噎按薄悼档枷菇土品喧授出康膨莫握指私妒嘱油柄揪恤筹宠捉坦鲍徐禄第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal练习(1.3)u理论教程P28-30选择题6-10,简答题4,6,11u上机1.实训教程1.52.本节中的实例希妈凝壬翻忽吵飘譬窟吾炳妻派氦砂临耍觅橡哼生茅寡缩棋离墨资敷脸动第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal本章小结 本章通过编写最简单程序来介绍了Delphi的集成开发环境;简要全面地讲述了 Delphi 编程语言Object Pascal;最后介绍 Delphi 中的程序调试及异常处理机制。这些都是Delphi编程基础,特别是Object Pascal语言,一定要多编写程序,以达到快速熟悉其语法的目的;并且在后续编程中要自觉运用Delphi程序调试技术及异常处理方法。墨挛挠生荚阔报奈愧兔悯娃痴埃丽咖南聊辱桩冠榴科橱肘律码寿眷葵嫩排第1章Delphi的编程语言ObjectPascal第1章Delphi的编程语言ObjectPascal

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号