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

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

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

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

        在Delphi中,最常见的程序模块便是事件处理过程中的程序模块。下面的事件处理过程是含有变量说明部分的程序模块: 

procedure TForm.Button1Click(Sender Tobject);

var {程序模块的说明部分}

Name : string;

begin {程序模块的语句部分}

Name := Edit1.Text;

Edit2.Text := 'Welcome to Delphi'+Name;

end; {程序模块结束} 

        库单元也是程序模块。库单元的interface部分含有库函数、类型、私有,公有域的说明,也可以含有常量、变量的说明。这一部分可以作为程序模块的说明部分。在库单元的implementation部分中通常含有各种事件处理过程,它们可以视为模块的语句部分,是事件处理模块。库单元模块结束于库单元结束的end.处。

        程序模块中可以包含其他的程序模块。上文库单元模块中含有事件处理模块。而库单元模块实际是在工程程序模块中。

         所有的Delphi应用程序都有相同的基本结构。当程序逐渐复杂时,在程序中加入模块即可。例如在库单元模块中加入事件处理模块,向工程中加入库单元模块等。模块化编程使得程序结构良好,并且对数据具有保护作用。 

2.1.7 关于作用范围 

2.1.7.1 标识符的作用范围 

        一个变量、常量、方法、类型或其他标识符的范围定义了这个标识符的活动区域。对于说明这个标识符的最小程序模块而言,此标识符是局部的。当您的应用程序在说明一个标识符的程序模块外执行时,该标识符就不在此范围内。这意味着此时执行的程序无法访问这个标识符,只有当程序再度进入说明这个标识符的程序模块时,才可以访问它。

         下面的示意图表示一个含有两个库单元的工程,每个库单元中又各有三个过程或事件处理过程。

2.1.7.2 访问其他程序模块中的说明 

        您可以在当前的程序模块中访问其他程序模块中的说明。例如您在库单元中编写一个事件处理过程来计算利率,则其他的库单元可以访问这个事件处理过程。要访问不在当前库单元中的说明,应在这个说明之前加上其他应用程序的名称和一个点号(.)。例如,在库单元Unit1中有事件处理过程CalculateInterest过程,现在您想在库单元Unit2中调用这一过程,则可以在Unit2uses子句中加入Unit1,并使用下面的说明: 

Unit1.CalculateInterest(PrincipalInterestRate : Double); 

        应用程序的代码不能在一个模块外访问它说明的变量。事实上,当程序执行跳出一个模块后,这些变量就不存在于内存中了。这一点对于任何标识符都是一样的,不管事件处理过程、过程、函数还是方法,都具有这一性质。这样的标识符称为局部变量。 

2.1.7.3 按照作用范围说明标识符

        您可以在应用程序的不同地方说明一个标识符,而只需保证它们的有效范围不同即可。编译器会自动访问最靠近当前范围的标识符。

       库单元的全局变量一般可以说明在保留字implementation后面。例如,下面的例程实现将两个编辑框中的整数相加,显示在第三个编辑框中。用到了一个整形的全局变量Count: 

implememntation 

var

Count : Integer; 

procedure TForm1.AddClick(Sender:TObject);

var

FirstNumber,SecondNumber:Integer;

begin

Count := Count + 1;

Counter.Text := IntToStr(Count);

FirstNumber := StrToInt(Edit1.Text);

SecondNumber := StrToInt(Edit2.Text);

Edit3.Text := IntToStr(FirstNumber+SecondNumber);

end;

… 

        为了实现每按动一次按钮Count增加一次,必须对全程变量Count进行初始化处理。在程序库单元的结尾处,最后一个end.保留字之前,加入保留字initialization和初始化Count的代码: 

initialization

Count := 0; 

        这样当事件处理过程AddClick被触发时,Count就会被增加一次,以表征计算次数。如果用面向对象编程,则Count可以说明成窗体的一个域,这在下一节中将有讲述。 

2.1.8 编写一个过程或函数

         在您开发Delphi应用程序时,所需的大部分代码都编写在事件处理过程中,但有时仍然需要编写不是事件处理过程的函数或过程。例如,您可以把在多个事件处理过程中用得到语句编写成过程,然后任何事件处理过程、过程、函数都可以象调用已经存在的过程或函数一样直接调用它。好处是您只需编写一次代码,而且程序代码会比较清楚。

2.1.8.1 一个自行编写的函数例程 

        在上文两个数相加的程序中,如果编辑框中无值,则会使得程序出错中断。为避免这种情况,编写下面的函数,检查编辑框中是否有值,如无值,则提醒用户输入: 

function NoValue(AnEditBox:TEdit):Boolean;

begin

if AnEditBox.Text='' then

begin

AnEditBox.Color := clRed;

AnEditBox.Text := '请输入整数值';

Result := True;

end

else

begin

AnEditBox.Color := clWindow;

Result := False;

end;

end; 

        NoValue函数会检查编辑框是否为空,如果是,编辑框颜色变红,并提醒用户输入一个整数,然后函数返回真值;Result保留字在Delphi中用来专指函数返回值。在上文的例程中加入NoValue函数: 

procedure TForm1.AddClick(Sender: TObject);

var

FirstNumber,SecondNumber : Integer;

begin

if NoValue(Edit1)or NoValue(Edit2) then

exit;

Count := Count + 1;

Counter.Text := IntToStr(Count);

FirstNumber := StrToInt(Edit1.Text);

SecondNumber := StrToInt(Edit2.Text);

Edit3.Text := IntToStr(FirstNumber+SecondNumber);

end; 

        如果其中的任何一个返回真值,则表示有编辑框空,会执行exit过程,使得当前的程序模块停止执行,并使得编辑框出现输值提示。当新值被输入后,再执行程序时,红色提示被隐去,恢复正常的计算状态。 

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

footer  footer  footer  footer