Записи в модулях с полным синтаксисом — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
Строка 16: Строка 16:
 
implementation
 
implementation
  
procedure Point.Move(dx: integer; dy: integer); // "имя_типа." перед именем метода
+
procedure Point.Move(dx: integer; dy: integer); // "имя_типа." перед именем метода -- квалификация
 
begin
 
begin
 
   Self.x += dx;
 
   Self.x += dx;

Версия 10:16, 24 декабря 2016

Если требуется определить запись в модуле в полной форме, в разделе интерфейса следует определять саму запись и только заголовки её методов, а реализацию — в разделе реализации. При этом в разделе реализации необходимо указывать имя типа перед именем метода через точку. Такая форма имени метода называется квалифицированной.

Пример

interface

type
  Point = record
    x, y: integer;
    
    procedure Move(dx: integer; dy: integer); // только заголовок
  end;
  
implementation

procedure Point.Move(dx: integer; dy: integer); // "имя_типа." перед именем метода -- квалификация
begin
  Self.x += dx;
  Self.y += dy;
end;