Основная концепция довольно проста. Метод обратного вызова - это указатель на метод, который вы передаете некоторому коду, чтобы он мог вызывать его в определенное время, чтобы вы могли настроить его поведение. Если у вас есть опыт работы с Delphi, вы уже знакомы с методами обратного вызова под другим именем: «обработчики событий».
Попробуйте что-то вроде этого в вашем плагине:
type
TMyEvent = procedure(param1, param2, param3: integer) of object;
procedure AddCallback(callback: TMyEvent);
Эта процедура будет принимать переданный указатель метода TMyEvent и сохранять его где-нибудь. Скажем, в переменной с именем FCallback. Когда придет время вызывать ваше приложение, код будет выглядеть так:
if assigned(FCallback) then
FCallback(param1, param2, param3);
Вы бы назвали это из своего приложения следующим образом, когда настраиваете плагин:
MyPlugin.AddCallback(self.callbackProc);
Иногда вам нужно поставить перед собой @ (@ self.callbackProc), чтобы компилятор мог сказать, что это указатель метода, а не вызов метода, но это не всегда необходимо.