|   | 
          
		   Учебник по Delphi 
Определение своих типов данных.
  
Как и любой современный язык программирования высокого уровня, Delphi позволяет
 программисту определять собственные типы данных. Причем существует
возможность сделать это несколькими способами. 
Все определяемые типы задаются в разделе type. Можно добавлять типы, например, после описания формы или до него.
Посмотрите на пример. Здесь тип Col описан до типа TForml, а тип d — после. 
	Листинг 4.1 
type 
// описание типа Со! 
	Col=record 
х: Integer; 
\/: Integer; 
end; 
	// описание типа TForml - формы 
	TForml = class(TForm) 
Button!: TButton; 
	Editl: TEdit; 
Edit2: TEdit; 
Edit3: TEdit; 
procedure ButtonlCI ick(Sender: TObject); 
private 
{ Private declarations } 
	publ ic 
{ Public declarations } 
end; 
	// описание типа d 
	d=0..9;
  
  
Таким образом, все равно, в каком порядке описаны типы. Можно даже сделать
еще один раздел type, если вам так удобнее. Delphi допускает несколько разделов
var И type. 
Если это нужно для удобочитаемости программы, то можно для каждого типа указывать свое слово type. 
Листинг 4,2 
type Co 12=record 
	хх: Integer; 
end; 
type Col=record 
х: Со12; 
у: Integer; 
end;
  
  
Но нужно помнить, что если вы описываете тип, который использует другой тоже
определяемый вами тип, то уже определенный тип, применяемый в создаваемом
типе, должен располагаться выше (в тексте программы). 
Тип-диапазон и перечисляемый тип
Тип-диапазон объявляется так:
  
	type D = ' 1 ' . . ' 9 ' ;
  
Таким образом, мы получили тип о, переменным которого можно присваивать значения от единицы до девяти.
Вот еще пример:
  
	type Months=l..12;
    
Полученный тип Months можно использовать, к примеру, для нумерации месяцев.
Тогда будет сложнее сделать ошибку, так как Delphi при всем вашем желании не
даст назначить номер месяца 13 или, допустим, 0.
В переменных типа Months, который мы только что придумали, допустимы только значения от единицы до 12 и никакие другие! 
Похожий на тип-диапазон перечисляемый тип описывается следующим образом:
  
	type D=(monday,tuesday,Wednesday,thursday,friday,Saturday,Sunday);
  
В скобках через запятую перечислены все возможные значения переменных этого
типа. 
Записи и классы
  
Очень удобными определяемыми типами являются записи.
Если мы хотим хранить в одной переменной разнообразные данные (числовые,
строковые и др.), то для этого как раз и нужно создать тип в виде новой записи. 
	Листинг 4.3 
type 
Card=record 
number: Integer; //номер карты 
	fio: String[220]; // фамилия владльца 
	age: Byte; // возраст владельца 
	salary: Integer; //зарплата 
	money: Int64; //деньги 
	end;
  
  
Получился новый тип с именем Card.
Можно объявить переменную типа Card и хранить в ней и номер карты, и фамилию,
 и возраст, и зарплату, и деньги — множество самых разнообразных данных.
Использование записей удобно само по себе, чтобы все структурировать, а не вспоминать,
 к чему относится та или иная переменная.
Записи также незаменимы при работе с файлами.
Разновидностью записей являются классы.
Они отличаются от записей тем, что в них можно описывать не только переменные, а еще и процедуры с функциями. 
Примером определяемого класса является класс формы, который Delphi создает
автоматически. 
Листинг 4.4 
type 
	TForml = class(TForm) 
	Buttonl; TButton; 
	Editl: TEdit; 
Edit2: TEdit; 
Edit3: TEdit; 
procedure ButtonlCI ick(Sender: TObject); 
private 
{ Private declarations } 
	publ ic 
{ Publ ic declarations } 
end; 
	 
Разумеется, можно добавлять и свои классы.
В классах и записях допускается использовать массивы.
Массивы объявляются точно так же, как и в разделе var. 
Листинг 4.5 
type 
Card=record 
number: Integer; // номер карты 
	fio: String[220]; // фамилия владельца 
	age: Byte; // возраст владельца 
	salary: Integer; //зарплата 
	money: Int64; //деньги 
	OtherC: array [1..10] of Integer; // номера других карт 
	end;
  
В данном случае в запись добавлен массив OtherC из 10 элементов типа Integer. 
		   
		   
		   
		   
		   
		   | 
            | 
         
        |