Delphi面向对象的编程方法基础教程_Delphi_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Delphi面向对象的编程方法基础教程

作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0

本篇关键词:Delphi
黑客防线网安网讯:Delphi的编程语言是以Pascal为基础的。Pascal语言具有可读性好、编写容易的特点,这使得它很适合作为基础的开发语言。同时,使用编译器创建的应用程序只生成单个可执行文件(.EXE),正是这种结合,使得Pascal成为Del

下面的drag-and-drop展示的Memo1DragDrop事件处理过程中也使用了Source参数。这个方法是为了把Memo部件的字型改变成和放入这个备注控制部件的标签一样的字型: 

procedure TForm1.Memo1DragDrop(SenderSource:TObject;

X,Y:Integer);

begin

Memo1.Font := (Source as TLabel).Font;

end; 

         当您在这个事件处理过程中编写赋值语句时,开发人员并不知道用户会放入哪一个标签,只有通过参考这个标签的名称(Source as TLabel)用户才能知道,并把标签类型赋给Memo1.TFontSource包含了用户拖放控制部件的名称,只有当Source是一个标签时,这个事件处理过程才允许这个赋值发生。

2.2.7 建立非可视化对象 

        您在Delphi中使用的大部分对象都是您在设计和运行期间可以看见的部件,例如编辑框、按钮等;一些部件,如通用对话框(Common dialog box)等,在设计时看不见,而在运行时可以看见;另外有些部件,例如计时器(Timer)、数据源(Data Source)部件等,在程序的运行期间没有任何可视化的显示,但您却可以在您的应用程序中使用它们。 

2.2.7.1说明一个非可视化对象 

        下面,通过一个简单的例子讲述如何建立自己的非可视化对象:

        您可以用如下的方法,建立一个自己的TEmployee非可视化对象: 

type

Temployee = class(TObject);

Name := String[25];

Title := String[25];

HourlyPayRate : Double;

function CalculatePayAmount:Double;

end; 

        在这种情况下,TEmployeeTObject继承下来,且包含三个域和一个方法。把您建立的类型说明放在库单元中的说明部分,并和窗体说明放在一起。在这个程序库单元的变量说明部分,说明一个新类型的变量: 

var

Employee : TEmployee; 

2.2.7.2Create方法建立对象实例 

        TEmployee只是一个对象类型。除非通过一个构造函数的调用从而被实例取代或创建,否则一个对象并不存储在内存中。构造函数是一个方法,它为新对象配置内存并且指向这个新的对象。这个新的对象也被称为这个对象类型的一个实例。

        建立一个对象的实例,需要调用Create方法,然后构造函数把这个实例赋给一个变量。如果您想说明一个TEmployee类型的实例,在您访问这个对象的任何域之前,您的程序代码必须调用Create

Employee := TEmployee.Create; 

        Create方法并没有在TEmployee类型中说明,它继承自TObject类型。因为TEmployeeTObject的子类,所以它可以调用Create方法而创建一个TEmployee实例。然后把它赋给Employee变量。在创建了一个这样的对象后,您就可以象使用其他的Delphi对象一样访问Employee对象了。 

2.2.7.3 撤销对象 

        当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来。您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存。

        Delphi的注销方法有两个:DestroyFreeDelphi建议使用Free,因为它比Destroy更为安全,同时调用Free会生成效率更高的代码。

         您可以用下列的语句释放用完的Employee对象: 

Employee.Free; 

         和Create方法一样,Free方法也是TEmployeeTObject中继承过来的。把您的注销放在tryfinally程序模块的finally部分,而把对象的程序代码放在try部分是编程的好习惯。这样,即使您的程序代码在使用对象时发生了异常事件,也会确保您为这个对象分配的内存会被释放。关于异常处理和tryfinally程序模块的信息以及建立非可视化对象的例子,在后文中还将仔细讲述。





    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-7698-1.html
网站维护教程更新时间:2012-03-02 12:42:28  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer