其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Delphi面向对象的编程方法(一)


发布日期:2022年02月01日
 
Delphi面向对象的编程方法(一)

Delphi的编程语言是以Pascal为基础的Pascal语言具有可读性好编写容易的特点这使得它很适合作为基础的开发语言同时使用编译器创建的应用程序只生成单个可执行文件(EXE)正是这种结合使得Pascal成为Delphi这种先进开发环境的编程语言

本章中我们将讨论Object Pascal的主要特点并讲解如何在事件处理过程和其他应用程序中使用它来编制程序代码本章将讲解Delphi应用程序中最常用的Object Pascal语法而不是Pascal语言的一切细节如果您完全不熟悉Pascal编程请参阅一些基础的Pascal教程如果您具有编程经验并能熟练地使用其他流行程序语言您将在本章的Object Pascal中发现一些相同的概念如果您已经熟悉了Borland Pascal就可以快速浏览或跳过本章

编写Object Pascal程序代码

在本章中我们将从熟悉Pascal编程的角度配合实例讲解Object Pascal编程的基本方法

在编写自己的Object Pascal程序时要注意程序的可读性Pascal语言是英式结构语言在程序中选择合适的缩排大小写风格并在需要时将程序代码分行会使得程序代码能够很容易地被自己和他人读懂一般的程序员都有这样的体验如果不给程序加上适当的注解一段时间后自己也难以理清程序的流程给程序及时地加上注释是良好的编程习惯Delphi的注释需要加注在{}之间编辑器会把它们处理成为空白Delphi保留了Borland Pascal编辑器的风格关键字采用黑体字被注释的部分会变暗这使得编程风格良好易读易写

编写赋值语句

在事件处理过程中最常用到的工作就是把一个新值赋给一个属性或变量在设计用户界面时可以使用Object Inspector(Object Inspector)来改变其属性但有时需要在程序执行时改变属性的值而且有些属性只能在执行时改变这些属性在Delphi的在线帮助的Proprety主题中被标为执行期属性进行这种改变就必须使用赋值语句

下文的赋值语句表征一个OnClick事件当按钮按动后将编辑框部件Edit的Color属性置为clRed:

procedure TFormButtonClick(Sender: TObject);

begin

EditColor := clRed;

end;

当按动按钮后赋值语句被执行编辑框变成红色

在语句中部件的名称在属性前中间用表示属性的所属关系这样就准确地指定了要将clRed值赋给哪一部件的哪一属性赋值号为:=不论给属性还是给变量赋值都是将右边的值赋给左边的属性或变量

当将一个属性值变量常量或文本数据赋给属性或变量时所赋值的类型和接受此值的属性或变量的类型应相同或兼容一个属性或变量的类型定义了此属性或变量的可能值集合也定义了程序代码可以执行的运算在前边的例程中编辑框部件的Color属性和clRed的类型都是TColor可以在在线帮助中找到一个属性的类型另外一种方法是在Object Inspector中选定该属性值段并按下F则类型将在属性说明的结尾处列出例如Color属性列出下边的语句

Property Color : TColor;

有些属性是只读(Read Only)的它们只能被读取不能被改变请查阅在线帮助在Delphi中这些只读属性都有注解

标识符的说明与使用

标识符是Delphi应用程序中一些量的名称这些量包括变量(var)常量(const)类型(type)过程(procedure)方法(Method)及其他Object Pascal 在应用标识符时必须首先说明它们Object Pascal是强类型语言它的编译器可以检查确保赋给变量或属性的值是正确的类型以便于您改正错误因为Object Pascal是编译语言所以Delphi的执行速度要比使用解释语言快得多在使用标识符前说明它们可以减少程序错误并增加代码的效率

变量

变量是程序代码中代表一个内存地址的标识符而此地址的内存内容在程序代码执行时可以被改变在使用变量前必须对它进行说明即对它进行命名并说明它的类型在所有变量说明以前加上保留字var变量说明左边是变量的名称右边则是该变量的类型中间用(:)隔开

var

Value Sum : Integer;

Line : String;

在窗体中加入一个名称为Edit的编辑框再加入一个名称(属性Name)为Add的按钮部件并建立如下的事件处理过程

procedure TFormaddClick(Sender: TObject);

var

X Y: Integer;

begin

X := ;

Y := ;

EditText := IntToStr(X + Y);

end;

在本例中当按动ADD按钮时编辑框中显示值在Object Pascal中必须确保变量或属性被赋予类型相同或兼容的值您可以尝试将赋给X的值改为或去掉IntToStr函数在编译时会出现类型不匹配的错误这也说明了Object Pascal强类型语言的特点

Object Pascal有多个预定义的数据类型您可以说明任何这些类型的变量

整形Integer的范围是字节的内存Shortint从字节内存Longint从字节内存Byte从字节Word从字节内存它们都是没有小数部分的数字

实型Single可以包含位有效小数部分占用字节的内存Double类可以包含位有效小数部分占用字节的内存Extended类型包含位有效小数部分占用字节内存Comp可以包含位有效小数部分占用字节内存以上实数类型只有在/选项[N+]打开才可以使用Real可以包含位有效小数部分占用字节内存它只有在和以前Borland Pascal兼容的情况下才使用否则应使用Double或Extended

布尔型Boolean只包含true或False两个值占用字节内存

字符型Char一个ASCII字符字符串类型String一串最长可达个ASCII字符

指针型Pointer可以指向任何特定类型

字符串型PChar是一个指向以零结尾的字符串的指针

除了预定义类型外Delphi还有自行定义的类型上述例程的TColor就是这种类型此外用户还可以定义自己的数据类型这部分内容将在下文中详细讲述

整型类别和实型类别都各有五种类型同一类别中所有的类型与其他同类别的都相容您可以将一种类型的值赋给相同类别中不同类型的变量或属性而只需要这个值的范围在被赋值的变量或属性的可能值范围内例如对于一个Shortint型的变量可以接受在范围内的任意整数例如Shortint类型的您不能将赋给它因为已经超出了Shortint的范围了将范围检查功能打开(选用Options|Project并在Compiler Options Page中选择Range Checking)将会检查出一个范围错误如果Range Checking没有被打开那么程序代码将可以执行但被赋值的值将不是您期望的值

在一些情况下您可以进行不同类型的变量或属性的赋值一般来说可以将一个较小范围的值赋给一个较大范围的值例如您可以将整型值赋给一个接受实型值的Double属性而使得值成为但如果将一个Double类型的值赋给整形变量则会出现类型错误如果您不清楚类型的兼容性可以参阅Delphi的在线帮助中Type Compatibility and Assignment Compatibility主题

常量

常量在说明时就被赋予了一个值在程序执行过程中是不可改变的下面的例子说明了三个常量

const

Pi = ;

Answer = ;

ProductName = Delphi;

象变量一样常量也有类型不同的是常量假设其类型就是常量说明中其所代表的值的类型上文的三个常量的类型分别是real型整形字符串型常量用= 表示两边的值是相等的

过程与函数

过程与函数是程序中执行特定工作的模块化部分Delphi的运行库包含许多过程与函数以供您的应用程序调用您不必了解过程与函数的逻辑但要知道过程与函数的用途在对象中说明的过程和函数称为方法(Method)所有的事件处理过程都是过程以保留字procedure开头每一个事件处理过程只包含了当这一事件发生时需要执行的程序代码在事件处理过程中使用Delphi =宋体 lang=ZHCN>已经存在的过程与函数只需在程序代码中调用它们即可

               

上一篇:Delphi简介

下一篇:Delphi编程访问注册表(二)