Иногда удобно заполнять поля статической записи одним оператором. Например, так:## Код:
```
VAR myTime: Dates.Time;

MyDates.Time(0, 0, 0, myTime);
```
Но бывает, что такой оператор немного нарушает структуру исходного текста. Например, если заполняются поля обширной записи, то удобнее (и лучше для восприятия) писать единообразно в виде## Код:
```
myTime := MyDates.Time(0, 0, 0);
```
Но процедура не может вернуть результат, тип которого не базовый, и для статических структур такая запись не подходит. А вот если завести указатель на соответствующий тип, то получается очень даже компактный инициализатор:## Код:
```
TYPE
      PTime = POINTER TO Dates.Time;

   PROCEDURE Time* (h, m, s: INTEGER): PTime;
      VAR t: PTime;
   BEGIN
      NEW(t); t.hour := h; t.minute := m; t.second := s;
      RETURN t
   END GetTime;
```
