當前位置:編程學習大全網 - 編程語言 - delphi的物件類型

delphi的物件類型

壹個枚舉型的說明列出了所有這種類型可以包括的值: type

Tdays=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);

可以定義上述枚舉類型的變量:

var

DayOfWeek:TDays;

在枚舉型中,括號中的每壹個值都有壹個由說明它的位置決定的整形值。例如Sunday有整形值0,Monday有整形值1等。您可以把DayOfWeek說明為壹個整形變量,並將壹星期的每壹天賦壹個整形值以達到相同的效果,但用枚舉型會使得程序可讀性好,編寫容易。當您在枚舉型中列出值時,您同時說明了這個值是壹個標識符。例如您的程序中如果已經含有TDays類型且說明了DayOfWeeks變量,則程序中便不能使用Monday變量,因為它已經被說明為標識符了。 子界型是下列這些類型中某範圍內的值:整形、布爾量、字符型或枚舉型。在您想限制壹個變量的取值範圍時,子界型是非常有用的。

type

Thours=0..23;

TValidLetter='A'..'F';

TDays=(Sunday,Monday,Tuesday,Wednesday,Thursday,

Friday,Saturday);{枚舉型}

TWorkDay=Monday..Friday;{壹個TDays型的子界}

子界型限定了變量的可能取值範圍。當範圍檢查打開時,(在庫單元的Implementation後面有{$R*.DFM}字樣表示範圍檢查打開,否則您可以在Options|Project|ComplierOptions中選擇RangeCheking來打開範圍檢查),如果變量取到子界以外的值,會出現壹個範圍檢查錯誤。 數組是某種數據類型的有序組合,其中每壹個元素的值由其相對位置來指定,您可以在數組的某個位置上放置數據,並在需要時使用這些數據。下面的類型說明了壹個Double型的數組變量:

var

Check:array[1..10]ofDouble;

它表示Check指向壹個含有10個Double型元素的數據串列,代表每壹個元素的是1到10之間的數字,稱為索引。數組的每壹項由數組名稱加上[]中的索引來表示。Check包含10個變量,Check[1]表示第壹個變量。您也可以把數組定義成類型:

type

TCheck=array[1..10]ofDouble;

則變量說明改為:

var

Check:TCheck;

您可以通過給數組賦值等方法來使用數組。下面的語句將0.0賦給Check數組中的所有元素:

forJ:=1to10do

Check[J]:=0.0;,

數組也可以是多維的,下面的類型定義了壹個20行、20列的數組。

type

Ttable=array[1..20,1..20]ofDouble;

var

table1:TTable;

,;,;想將這壹表格的所有數據初始化為0.0,您可以使用for循環:

var

Col,Row:Integer;

forCol:=1to20do

forRow:=1to20do

Table1[Col,Row]:=0.0; 字符串類型事實上是壹個壹維的字符數組。當您說明壹個字符串型的變量時,您應當指明這個字符串的大小,下面是說明字符串類型的例子:

type

MyString:string[15];

var

MyName:MyString;

則變量MyName被說明成為最多可以包含15個字符。如果您沒有說明字符串的大小,Delphi會認為字符串包含最大值255個字符。給字符串賦值可以直接使用單引號括起的字串賦值:

MyName:='Frank.Smith';

或MyName:='張明';

因為MyName是壹個可以包含15個字符的MyString型變量,上文的兩個的變量都是有效的,壹個漢字可以視作兩個字符。當您給字符串型變量賦的值多於定義數值時,例如將MyName賦為‘FrankSmith.Franklin’,則Delphi只會接受前15個字符‘FrankSmith.Fran’。在內存中,字符串通常占用比所說明的大小多壹個字節的空間,因為第壹個位置是壹個包含這個數組大小的字節。您可以使用索引值來訪問字符串的字符,MyName[1]可以得到MyName的第壹個字符'F'。

可以使用Delphi豐富的運算符、過程和函數來處理字符串型的變量和屬性。下面介紹幾個常用的運算符和Delphi過程或函數:

Concat和(+)功能相同,都可以將多個字符串組合在壹起,建立壹個較大的字符串;Copy會返回壹個字符串中的子字符串;Delete在壹個字符串中從壹個指定位置起刪除壹定數目的字符;Insert在壹個字符串中插入壹個字符串;Length返回字符串的長度;Pos返回壹個子字符串在壹個字符串中的位置,即索引值。 集合類型是壹群相同類型元素的組合,這些類型必須是有限類型如整形、布爾型、字符型、枚舉型和子界型。在檢查壹個值是否屬於壹個特定集合時,集合類型非常有用。下面的例程可以說明集合類型的用法:在窗體上加入壹個編輯框和壹個按鈕,清除編輯框中的文字,在其上加上Caption為“輸入元音”的標簽Label,並在編輯框的下方加入壹個空的標簽,將按鈕的Default屬性改為True,建立按鈕的事件處理過程如下:

procedureTForm1.Button1Click(Sender:TObject);

type

Tvowels=setofChar;

var

Vowels:TVowels;

begin

Vowels:=['a','e','i','o','u'];

ifEdit1.Text[1]inVowelsthen

Lable2.Caption:='是元音';

else

Lable2.Caption:='請再試';

end;

執行這個程序,在編輯框中輸入字母,表達式Edit1.Text[1]inVowels的結果是布爾型的,in是運算符,用來判斷字母是否存在於集合中。輸入的判別結果會顯示在編輯框的下方。以上就用到了集合類型TVowels。 記錄是您的程序可以成組訪問的壹群數據的集合。下面的例程說明了壹個記錄類型的用法:

type

TEmployee=record

Name:string[20];

YearHired:1990..2000;

Salsry:Double;

Position:string[20];

end;

記錄包含可以保存數據的域,每壹個域有壹個數據類型。上文的記錄TEmployee類型就含有四個域。您可以用以下的方式說明記錄型的變量:

var

NewEmployee,PromotedEmployee:TEmployee;

用如下的方法可以訪問記錄的單域:

NewEmployee.Salary:=1000;

編寫如下的語句可以給整個記錄賦值:

withPromotedEmployeedo

beginsfu nb

Name:='';

YearHired:=1993;

Salary:=2000.00

Position:='editor';

end;

您的程序可以將記錄當成單壹實體來操作:

PromptEmployee:=NewEmployee;

以上介紹了用戶常用的自定義類型。在Delphi的編程中,對象是非常重要的用戶自定義數據類型。象記錄壹樣,對象是結構化的數據類型,它包含數據的域(Field),也包含作為方法的過程和函數。在Delphi中,當您向窗體中加入壹個部件,也就是向窗體對象中加入了壹個域;每壹個部件也是對象,每當您建立壹個事件處理過程使得部件可以響應壹個事件時,您即自動地在窗體中加入了壹個方法。

  • 上一篇:大家能否提供壹下關於漢武帝和著名臣子的故事?200分啊!
  • 下一篇:壹二年級的詩歌比賽作品有哪些
  • copyright 2024編程學習大全網