В первых двух строчках описаны процедурные типы. Например
var i: Integer; -тип Integer для переменной i.
var s: TProc; - переменная s получает указатель на процедуру TProc. Если переменная это поле внутри объекта или класса, то она называется методом и должна иметь два указателя: на процедуру и (неявный) на экземпляр объекта. Для этого в описании процедурного типа добавляют 'of object'. Например:
Код:
type
TMethodDataSetOpen = procedure of object;
type
A = object
s: TMethodDataSetOpen;
end;
Третье описание - это класс. В скобках указан его родитель и интерфейс, функции которого он должен реализовать или наследовать.