Delphi编程入门讲解.ppt_第1页
Delphi编程入门讲解.ppt_第2页
Delphi编程入门讲解.ppt_第3页
Delphi编程入门讲解.ppt_第4页
Delphi编程入门讲解.ppt_第5页
免费预览已结束,剩余84页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Delphi编程入门讲解 Delphi历史Delphi特性Delphi7开发环境介绍面向对象程序设计 OOP ObjectPascal基本语法 Delphi发展历史 1995年delphi1发布1996年delphi2发布 1999年delphi5发布 2002年delphi7发布 2007年delphi2007发布 2010年delphi2010发布 Delphi特性 快速开发工具最好的C S程序开发工具支持各种程序的开发Win32原生程序 快速开发工具delphi语法 ObjectPascal 是一种面向对象的计算机语言 程序语法严谨 易学易用 VCL库 提供丰富的可视化组件库 程序人员可根据需要直接进行调用 IDE开发环境 集编码 设计 调试如一身 大大方便了程序的开发调试 最好的C S程序开发工具支持所有的常用数据库可开发两层结构 三层结构的管理软件非常棒的VCL控件支持开发的程序易于发布 支持各种程序的开发数据库应用程序的开发网络应用软件的开发游戏软件的开发其它应用软件 Delphi7开发环境介绍 文件类型 pas 单元文件 dfm 窗体文件 dpr 项目文件 dpl 压缩库文件 dpk 包文件 res 资源文件 dcu 编译文件 定制工具栏View Toolbars Customize 常用工具按钮介绍 定制代码编辑器Tools EditorProperties 保存定制开发环境View Desktop SaveDesktop 项目目录设置Project Options 组件库路径设置Tools EnvironmentOptions 从当前工程已有基类继承 断点设置与调试 常用快捷键F3 继续查找F4 运行程序至光标处F5 设置断点F7 跟踪调试F8 单步调试F9 运行程序F11 在Form Unit和ObjectInspector 对象查看器 之间切换F12 在Form和Unit之间切换Ctrl F9 编译Ctrl Alt F11 弹出ProjectOptions 工程管理器 Ctrl Shift 上 下方向键 在过程的声明和实现间切换Ctrl J 插入标准语法代码Ctrl Shift U Ctrl Shift I 将所选择的代码整体右移或者左移Ctrl Shift C 完成已声明类的实现Shift Alt F11 对象树状视图 ObjectPascal基本语法 运算符常量和变量过程和函数数据类型程序流程控制单元的组织结构 一 运算符1 赋值运算符 2 比较运算符 3 逻辑运算符 4 算术运算符 5 按位运算符 6 其他运算对象类型的转化 a 使用is进行类型兼容性判断 然后用as转化 b 使用Tobject InheritsFrom代替is运算符 二 常量与变量1 声明常量 const变量 var2 有类型常量和无类型常量consti 5 ErrMsg 被除不能为0 s String 123456 3 全局变量和局部变量注 全局变量可指定初始值 但局部变量不可以 三 过程与函数区别 函数 有返回值 过程 无返回值 声明 函数 function 过程 procedure 原则 先声明 后使用 参数值传递与参数地址传递参数值传递 procedureChangeMsg s String 参数地址传递 procedureChangeMsg vars String procedureTForm1 btn1Click Sender TObject varStr string beginStr StrVar ChangeMsg1 Str ShowMessage Str StrVarChangeMsg2 Str ShowMessage Str StrVarisChangedend procedureTForm1 ChangeMsg1 s String begins s isChanged end procedureTForm1 ChangeMsg2 vars String begins s isChanged end OUT参数输出参数 它传递的也是一个引用 然而 对于OUT参数 将其传递到过程 函数中时 初始量会被丢弃 procedureTForm1 btn1Click Sender TObject varStr string beginStr Message ChangeMsg3 Str ShowMessage Str Changedend procedureTForm1 ChangeMsg3 outs String beginShowMessage s 显示空字符串s Changed end 四 数据类型常用类型 复杂类型 整数 integer 集合 Set 实数 Real 数组 Array 布尔 Boolean 记录 Record 字符 串 Char String 文件 File 枚举 Enumerated 类 Class 子界 Subrange 接口 Interface 可变类型 Variant 枚举数据类型1 定义 2 枚举数据类型特点枚举元素只能是标识符typedays sun mon tue wed thu fri sat colors red yellow blue white black green varWeek days FormColor colors typecolortype red yellow blue white numbers 1 3 5 7 9 枚举类型属于顺序类型根据定义类型时各枚举元素的排列顺序确定它们的序号 且序号从0开始 例如 typedays sun mon tue wed thu fri sat 则 ord sun 0 ord mon 1 以此类推 枚举类型中的第一个元素无前趋 最后一个元素无后继 pred sat fri succ sun mon ord sat 6 同一个枚举元素不能出现在两个或两个以上的枚举类型定义中typecolor1 red yellow white color2 blue red black 枚举类型变量只能进行赋值运算和关系运算 不能进行算术运算和逻辑运算 在枚举元素比较时 实际上是对其序号的比较 例如 typedays sun mon tue wed thu fri sat colors red yellow blue white black green varcolor colors weekday days 则下面语句是合法的 weekday mon ifweekday sunthenShowMessage 3 枚举数据类型的应用 子界数据类型介绍1 定义及定义规则type子界类型标识符 常量1 常量2常量1称为子界的下界 常量2称为子界的上界 下界和上界必须是同一顺序类型 该类型称为子界类型的基类型 且上界的序号必须大于下界的序号 如 typeage 1 100 letter a z 可以直接在变量说明中定义子界类型 如 typeletter a z varch1 ch2 letter varch1 ch2 a z 2 子界类型数据的运算规则 凡可使用基类型的运算规则同样适用该类型的子界类型 基类型相同的不同子界类型数据可以进行混合运算 varliInt1 1 10 liInt2 10 20 liInt3 Integer beginliInt1 5 liInt2 11 liInt3 liInt1 liint2 ShowMessage IntToStr liInt3 end 集合数据类型介绍1 定义type集合类型名称 Setof基类型 基类型可以为 字符型 布尔型 枚举型和子界型 例 typenumbers setof0 9 ch setofchar varn numbers c ch d setof sun mon tue wed thu fri sat 注 集合的元素个数不超过256个 因此vars setofinteger 是错误的 2 集合的值a 集合的值放在一对方括号中 中间各元素之间用逗号隔开 如 1 2 5 和 a e i 都是集合 b 为空集 c 在集合中 如果元素的值是连续的 则可用子界型的表示方法表示 例如 1 2 3 4 5 10 15 可以表示成 1 5 10 15 d 集合的值与方括号内元素出现的次序无关 例如 1 5 8 和 5 1 8 的值相等 e 在集合中同一元素的重复出现对集合的值没有影响 例如 1 8 5 1 8 与 1 5 8 的值相等 f 每个元素可用基类型所允许的表达式来表示 如 1 1 2 succ ch 3 集合的运算集合类型变量不能进行算术运算 集合是无序的 不能使用ord pred succ等函数 a 赋值运算varliInt setof0 9 liInt 0 b 集合的并 交 差运算varA Setof X Y Z B Setof X 并 A B为 X Y Z 交 A B为 X 差 A B为 Y Z c 集合的关系运算关系运算符 相等 不等 包含 被包含 B A False A B B A True A B B True A A B False A A B True A in A B True 4 集合的应用VarLanguage setof English German France procedureTForm1 chkEnglishClick Sender TObject beginif SenderasTCheckBox CheckedthenLanguage Language English elseLanguage Language English end procedureTForm1 btn1Click Sender TObject beginif English LanguagethenShowMessage English被选中 end 数组数据类型介绍1 静态数组定义一维 数组名 array 下标类型 of元素类型二维 数组名 array 下标类型1 下标类型2 of元素类型2 动态数组定义一维 数组名 arrayof元素类型二维 数组名 arrayofarrayof元素类型注 动态数组定义后需分配内存空间SetLength 动态数组名 数组长度 数组长度 3 数组应用constMyArray array 0 2 ofstring English German France vari Integer beginfori Low MyArray toHigh MyArray doShowMessage MyArray i end varMyArray arrayofarrayofInteger i j Integer beginSetLength MyArray 2 2 fori Low MyArray toHigh Myarray dobeginforj Low MyArray toHigh MyArray dobeginMyArray i j Random 10 end end end 记录数据类型介绍1 定义type类型标识符 record变量标识符1 类型 变量标识符2 类型 变量标识符n 类型 end 2 记录类型应用typeStudents recordname String 20 age 6 30 caseclassName Charof 变体记录 共享内存 A English Real B Math Real end varStu1 Stu2 Students beginStu1 name 张三 Stu1 age 13 Stu1 className A Stu1 English 88 2 ShowMessage FloatToStr Stu1 Math 88 2end 五 程序流程控制条件语句 循环语句 控制语句 Break 跳出当前循环 Continue 结束本次循环 执行下一次循环 Exit 退出当前代码块 如果当前代码块是主程序 则程序终止 如果程序块是被调用的模块 则跳到上一层程序继续执行 Halt 强制终止程序 返回操作系统 Abort 中止程序运行 保留主程序 Goto 跳转 六 单元的组织结构dpr 项目文件 唯一pas 单元文件 工程项目dfm 窗体文件 其它文件 如res 资源文件 一个 不一定 项目文件 program 组织结构 单元文件 Unit 组织结构 单元的循环引用循环引用的意思是 A引用了B 而B又引用了A 且都是在interface部分进行引用 如下面的单元则通不过编译 unitUnit1 unitUnit2 interfaceinterfaceusesusesUnit2 Unit1 至于有一个引用放置在implementation部分 面向对象程序设计 OOP 类的概念 指某一类事物共同特征的抽象描述 类使用属性和方法来描述某一事物的具体特征和行为 对象的概念 即类的实例化 面向对象编程的表现形式 封装继承多态 封装 代码模块化指利用类将数据和方法封装起来 从而实现功能的隐匿 即控制功能的可见性 1 访问控制符私有成员访问符 private 受保护成员访问符 protected 公有成员访问符 public 发布的成员访问符 published 自动的成员访问符 automated 不再使用 向后兼容保留 2 封装方式a 逻辑封装对类进行操作 将业务的功能和行为以类的形式呈现 b 物理封装表现形式 如动态链接库 DLL 继承 代码重用继承就是根据已有的类创建一个新类的过程 继承的类称为子类 被继承的类称基类 子类的功能就是完善与扩展基类 子类可以继承基类的变量 属性和方法 1 属性的继承属性通过继承不但可以增加可见性 还可以对其功能进行扩展 2 方法的继承 方法 静态方法 默认类型 虚方法 virtual 动态方法 dynamic 抽象方法 abstract 基类无需实现 子类必须实现 当代码被编译时 编译器会给静态方法一个地址 子类继承时 只是将基类方法的地址赋给了子类 代码运行时通过动态查找VMT DMT来指定地址 unitUnit1 interfaceusesWindows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs StdCtrls typeTForm1 class TForm edt1 TEdit btn1 TButton procedurebtn1Click Sender TObject private Privatedeclarations public Publicdeclarations end typeTMyBaseClass classpublicprocedureBaseSetEdt end typeTMyChildClass class TMyBaseClass publicprocedureChildSetEdt end varForm1 TForm1 implementation R dfm TMyBaseClass procedureTMyBaseClass BaseSetEdt beginForm1 edt1 Text Form1 edt1 Text 基类 end TMyChildClass procedureTMyChildClass ChildSetEdt beginForm1 edt1 Text Form1 edt1 Text 子类 end TForm1 procedureTForm1 btn1Click Sender TObject varMyChildClass TMyChildClass beginMyChildClass TMyChildClass Create MyChildClass BaseSetEdt MyChildClass ChildSetEdt end end 多态 接口重用多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术 赋值之后 父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作 摘自 Delphi4编程技术内幕 简单的说 就是一句话 允许将子类类型的指针赋值给父类类型的指针 覆盖 override 和虚方法是多态的主要表现形式 注意 重载 overload 只是一种语言特性 与多态无关 与面向对象无关 重载 overload 1 方法名一定相同 2 参数个数 参数类型及参数顺序不同 3 在Delphi中 返回值不同 不能区分两个重载的方法 例 functionShowMsg psStr String piInt integer String overload functionShowMsg piInt integer psStr String String overload functionShowMsg piInt Integer String overload procedureShowMsg piInt Integer overload functionShowMsg piInt integer Integer overload unitUnit1 interfaceusesWindows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs ExtCtrls StdCtrls typeTMyPanel class TPanel publicprocedureSetColor virtual abstract end typeTForm1 class TForm btn1 TButton procedurebtn1Click Sender TObject privatepublicprocedureCreatePanel poPanel TMyPanel piWidth piHeight piTop piLeft Integer psCaption String end typeTMyPanelA class TMyPanel publicprocedureSetColor override end typeTMyPanelB class TMyPanel publicprocedureSetColor override end varForm1 TForm1 implementation R dfm TMyPanel procedureTMyPanel SetColor beginSelf Color clGreen end TMyPanelA procedureTMyPanelA SetColor begin inherited Self Color clRed end TMyPanelB procedureTMyPanelB SetColor begin inherited Self Color clBlue end TForm1 procedureTForm1 CreatePanel poPanel TMyPanel piWidth piHeight piTop piLeft Integer psCaption String beginwithpoPaneldobeginCaption psCaption Left piLeft Top piTop Width piWidth Height piHeight Parent Self SetColor end end procedureTForm1 btn1Click Sender TObject varloMyPanel TMyPanel loPanelA TMyPanelA loPanelB TMyPanelB begin loMyPanel TMyPanel Create Self CreatePanel loMyPanel 100 100 50 20 基类Panel loPanelA TMyPanelA Create Self CreatePanel loPanelA 100 100 50 130 PanelA loPanelB TMyPanelB Create Self CreatePanel loPanelB 100 100 50 240 PanelB end end VCL 可视化组件库 VCL是可视化组件库 VisualComponentLibrary 的简称 它是一个庞大的类 组件库 Delphi和C Builder使用的组件库都是VCL 类似于C 的MFC VCL架构VCL采用单根架构 Single rootedHierarchy 即所有类的祖先都是Tobject 且每次只能从一个类派生子类 即单继承而非多继承 JAVA也采用单根架构 而C 不是 使用VCL1 静态方式设计时加入组件进行属性和事件设计 2 动态方式用代码创建类的实例 对象 然后使用它提供的功能 最后销毁它 扩展VCL 自定义组件当现有的类和组件无法满足我们的需要时 可以从VCL的现有类和组件上派生新的子类和子组件 结构化查询语言SQL StructuredQueryLanguage SQL语言组成 数据定义语言 DDL 例如 CREATE DROP ALTER等语句 数据操作语言 DML 例如 INSERT 插入 UPDATE 修改 DELETE 删除 语句 数据查询语言 DQL 例如 SELECT语句 数据控制语言 DCL 例如 GRANT REVOKE COMMIT ROLL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论