| DELPHI基础教程  第二章 Delphi面向对象的编程方法(二) 2.1.4 跳转语句 Object Pascal  的跳转语句有 if
       2.1.4.1 if  语句           if  语句会计算一个表达式,并根据计算结果决定程序流程。在上文的例程中,根据 ColorDialog.Execute
               if  语句可以嵌套,当使用复合语句表达时,复合语句前后需加上 begin
       2.1.4.2 case  语句            case
         下面的例程显示一个使用 case
         建立如下的事件处理过程:   procedure TForm1.Button1Click(Sender: TObject); var Number : Integer; begin Number := StrToInt(Edit1.Text); case Number of 1,3,5,7,9: Label2.Caption := '  奇数 '; 0,2,4,6,8: Label2.Caption := '  偶数 '; 10..100:  begin  Label2.Caption := '  在 10
       Form1.Color := clBlue; end; else Label2.Caption := '  大于 100
       end;  end;             
        执行程序,当 Edit1
       2.1.5 循环语句          Object Pascal
       2.1.5.1 repeat  语句           repeat
       i := 0; repeat i := i+1; Writen(i); until i=10;            当此语句被执行时,窗体的下方会出现 1
       2.1.5.2 while  语句            while
                   
        下面的例程达到和上面的 repeat
       i := 0;  while i<10 do begin i := i+1; writeln(i); end;   2.1.5.3 for  语句            for
         下面的程序段会显示 1
       var  i : integer; for i := 1 to 5 do writeln(i);               
        以上介绍了三种循环语句。如果您知道循环要执行多少次的话,可以使用 for
       2.1.6 程序模块             
        程序模块在 Object Pascal
                 
        在 Delphi
       procedure TForm.Button1Click(Sender Tobject); var {  程序模块的说明部分}  Name : string; begin {  程序模块的语句部分}  Name := Edit1.Text; Edit2.Text := 'Welcome to Delphi'+Name; end; {  程序模块结束}              
        库单元也是程序模块。库单元的 interface
                  
        程序模块中可以包含其他的程序模块。上文库单元模块中含有事件处理模块。而库单元模块实际是在工程程序模块中。              
        所有的 Delphi
       2.1.7 关于作用范围   2.1.7.1 标识符的作用范围              
        一个变量、常量、方法、类型或其他标识符的范围定义了这个标识符的活动区域。对于说明这个标识符的最小程序模块而言,此标识符是局部的。当您的应用程序在说明一个标识符的程序模块外执行时,该标识符就不在此范围内。这意味着此时执行的程序无法访问这个标识符,只有当程序再度进入说明这个标识符的程序模块时,才可以访问它。              
        下面的示意图表示一个含有两个库单元的工程,每个库单元中又各有三个过程或事件处理过程。  2.1.7.2 访问其他程序模块中的说明              
        您可以在当前的程序模块中访问其他程序模块中的说明。例如您在库单元中编写一个事件处理过程来计算利率,则其他的库单元可以访问这个事件处理过程。要访问不在当前库单元中的说明,应在这个说明之前加上其他应用程序的名称和一个点号 (.)
       Unit1.CalculateInterest(PrincipalInterestRate : Double)
                  
        应用程序的代码不能在一个模块外访问它说明的变量。事实上,当程序执行跳出一个模块后,这些变量就不存在于内存中了。这一点对于任何标识符都是一样的,不管事件处理过程、过程、函数还是方法,都具有这一性质。这样的标识符称为局部变量。   2.1.7.3 按照作用范围说明标识符             
        您可以在应用程序的不同地方说明一个标识符,而只需保证它们的有效范围不同即可。编译器会自动访问最靠近当前范围的标识符。            库单元的全局变量一般可以说明在保留字 implementation
         … 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
         …  initialization Count := 0;             
        这样当事件处理过程 AddClick
       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
       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
       2.1.8.2 过程和函数的标题              
        每一个过程或函数都以标题开始,其中包括过程或函数的名称和它使用的参数。过程以保留字 procedure
       procedure validateDate(Day : Integer; month : Integer; Year : Integer);          您也可以将相同类型的参数组合在一起,则上述过程头写作:   procedure ValidateDate(Day, Month, Year : Integer);            函数在标题中还多了一项:返回值的类型。下面是一个返回值为 Double
       function CalculateInterest(principal,InterestRate:Double):Double;  2.1.8.3 函数和过程中的类型说明             一个过程或函数程序模块也含有说明部分和语句部分。说明部分可以包括类型说明、变量说明、常量说明等。除了 Object 
        Pascal  语言中已经定义的类型之外, Delphi
       type  Tcount = Integer; TPrimaryColor = (Red,Yellow,Blue); TTestIndex = 1..100; TTextValue = -99..99; TTestList = array [TTestIndex] of TTestValue; TCharVal = Ord('A')..Ord('Z') ; Today = (Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, Sunday) ;              
        在类型标识符后面,用“=”号定义了新的类型。类型界定了变量的取值范围,例如, TCount
                   
        一般来讲,在过程和函数中,任何类型说明都在变量说明之前,而任何变量说明都在常量之前。但是,只要遵从说明必须在过程与函数的标题之后,而且在程序代码之前,即是有效的。  |