Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
Type
Ключевое слово
Определяет новую категорию переменной или процесса unit
  
1 type Name = Existing type;
2 type Name = type Existing type;
3 type Name = (EnumValue1 [=value], EnumValue2 [=value] ...);
4 type Name = Expression1..Expression2;
5 type Name = ^Existing type;
6 type Name = array[...] of Existing type;
7 type Name = class ... end;
8 type Name = class of Existing class
9 type Name = dispinterface ... end;
10 type Name = file of Existing type;
11 type Name = function ...;
12 type Name = interface ... end;
13 type Name = object ... end;
14 type Name = procedure ...;
15 type Name = record ... end;
16 type Name = set of Ordinal values
Описание
Ключевое слово Type является фундаментальной частью Delphi. В отличие от других языков, оно позволяет создать новые категории (типы) переменной и процесса. На эти новоявленные категории можно сослаться так же, как если бы они были частью языка.

Например:

type TCourtCards = (Ace, Jack, Queen, King);

позволяет определить новую переменную этого "типа":

var Card : TCourtCard; Card := Queen;

Есть полезное соглашение - приставлять T к именам (Name) типов.

1.type Name = Existing type

Обращается к существующему типу, такому как string, но с новым Названием.

2.type Name = type Existing type

Это имеет тот же самый эффект, что и выше, но гарантирует, что во время выполнения, переменные этого типа будут идентифицированы по новому названию типа, а не существующим названием типа.

3.type Name = (EnumValue1, EnumValue2 ...)

Определяет перечисляемый тип, со значениями EnumValu1, EnumValue2 и так далее. Эти, определяемые пользователем названия, позволяют представлять всевозможные значения для перечислений.

Эти значения должны быть уникальными в вашей программе. После определения в типе, на них можно сослаться двумя способами: когда ссылаются/присваивают переменную этого типа, и как числовое значение, используя ключевое слово Ord. См. пример.

Обратите внимание, что эти перечисления имеют значения 0, 1, 2 и т.д. в зависимости от позиции на определении, если это значение не предписано указанным номером =value.

Например:

type Days = (Monday = 1, Tuesday, Wed ...);

где понедельник будет установлен в 1, вторник - 2, среда - 3 и так далее.

4.type Name = Expression1..Expression2

Здесь мы имеем диапазон целых чисел или символов от Expression1 до Expression2.

Expression1 и Expression2 - выражения, которые могут быть приведены к целому числу или символу.

Например:

type TAlphabet = 'A'..'z';

часто используется, чтобы определить диапазон символов от прописной A до строчной z.

5.type Name = ^Existing type

"^" - указатель на существующий тип. Он часто используется для перемещения через наборы записей.

6.type Name = array[...] of existing type

Структурированный тип, формирует массив типов как новый тип.

7.type Name = class ... end

Механизм для определения нового класса. См. ключевое слово Class.

8.type Name = class of existing class

Это обеспечивает определение мета класса. См. ключевое слово Class.

9.type Name = dispinterface ... end

См. ключевое слово Dispinterface.

10.type Name = file of Existing type

Определяет тип для обращения к файлу, который содержит записи данного существующего типа (по умолчанию, файлы обрабатываются как содержащие двоичные данные).

11.type Name = function ...

Определяет функцию как тип, позволяя функции быть определенной как параметр для подпрограммы.

12.type Name = interface ... end

Механизм для определения интерфейс. См. ключевое слово Interface.

13.type Name = object ... end

Устаревший эквивалент определения класса.

14.type Name = procedure ...

Определяет функцию как тип, позволяя функции быть определенной как параметр для подпрограммы.

15.type Name = record ... end

Формирует структуру данных под данным именем (Name). См. ключевое слово Record.

16.type Name = set of Ordinal values

Набор порядковых значений определяющих диапазон целых чисел или символов. См. ключевое слово Set.
Похожие команды
Array  Тип данных содержащий индексируемую коллекцию данных

Class  Начинает объявление типа объектного класса

Const  Начинает определение данных с установленными значениями

File  Определяет типизированный или нетипизированный файл

Function  Определяет подпрограмму, которая возвращает значение

Interface  Используется для внешних определений модуля, и как скелет класса

Object  Позволяет данным типа подпрограмм обращаться к методу объекта

Procedure  Определяет подпрограмму, которая не возвращает значение

Record  Структурный тип данных содержащий поля данных

Set  Определяет множество до 255 различных значений

Var  Начинает раздела определения переменных

 
Пример кода : Примеры некоторых из этих типов
Type
  TString1 = string;              //  1. type Name  = Existing type
  TString2 = type string;         //  2. type Name  = type Existing type
  TTemp    = (Hot, Warm, Cold);   //  3. type Name  = (Enum1, Enum2 ...)
  TExpr    = 5*2 .. 6*3;          //  4. type Name  = Expr1 .. Expr2
                                  //  5. См. ключевое слово Pointer
  TArray   = array[1..3] of byte; //  6. type Name  = array[...] of type
                                  //  7. См. код
                                  //  8. См. ключевое слово Class
                                  //  9. См. ключевое слово Dispinterface
                                  // 10. См. ключевое слово File
                                  // 11. См. ключевое слово Function
                                  // 12. См. ключевое слово Interface
                                  // 13. Устаревший
                                  // 14. См. ключевое слово Procedure
  TRecord  = record               // 15. type Name  = record .. end;
               header : string;
               value  : Integer;
             end;
  TLetters = set of 'A'..'z';     // 16. type Name  = set of Ordinals

var
  // Объявление переменных, использующих вышеупомянутые типы
  firstName   : TString1;
  lastName    : TString2;
  temperature : TTemp;
  expression  : TExpr;
  myArray     : TArray;
  myRecord    : TRecord;
  letters     : TLetters;

begin
  // Присвоение значений этим типам
  firstName       := 'Neil';
  lastName        := 'Moffatt';
  temperature     := Cold;
  expression      := 10;
  myArray[1]      := 5;
  myRecord.header := 'data file';
  letters         := ['F'..'Q'];
end;
Программа выполняется без вывода
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия