Про вказівники методів.
Вказівники методів - це змінна, яка вказує на метод об'єкту, причому не обов'язково того ж самого класу.
Формат оголошення типу «вказівник методу» аналогічний формату оголошення процедурного типу, за винятком того, що наприкінці визначення типу дописується пара ключових слів of object.
Наприклад:
TOnSomeEvent = procedure(eventCode: Integer) of object;
TSomeFunc = function(par1: Integer; par2: String): String of object;
Різниця в роботі з вказівниками методів у Delphi і Lazarus
Різниця в роботі виникає під час присвоєння змінних типу вказивники методу.
У Delphi при присвоєнні треба вказувати ім'я методу, а в Lazarus треба вказувати вказівник на метод використовуючи символ @.
Приклад:
TSomeClass = class
private
procedure OnSomeEvent(eventCode: Integer);
end;
// Тепер якщо в якомусь методі ми захочемо змінній присвоїти цей метод, то треба робити наступним чином
procedure TSomeClass.pointerMethodAssignment;
var
eventProc: TOnSomeEvent;
begin
{$IFDEF FPC}
// Lazarus
eventProc := @OnSomeEvent;
{$ELSE}
// Delphi
eventProc := OnSomeEvent;
{$ENDIF}
end;