Исходя из вашего синтаксиса на сайте CALLING, кажется, что вы хотите объявить процедуру, которая будет вызываться встроенной на сайте вызова.
Если это так, вам не следует использовать определение OF OBJECT, а ССЫЛКУ НА:
type
TCallBack = reference to procedure(x : String);
Затем вы можете использовать свой код:
procedure procA(CallBack : TCallBack);
begin
CallBack('hello world')
end;
procA(procedure (res : string)
begin
ShowMessage(res);
end);
РЕДАКТИРОВАТЬ: Пример кода
type
TCallBack = reference to procedure(x : String);
procedure procA(CallBack : TCallBack);
begin
CallBack('hello world')
end;
procedure TForm59.FormCreate(Sender: TObject);
begin
procA(procedure (res : string)
begin
ShowMessage(res);
end);
end;
РЕДАКТИРОВАТЬ: Использование события CallBack из потока:
PROCEDURE TWebThread.Execute;
BEGIN
.
.
.
Synchronize(PROCEDURE
BEGIN
CallBack('Hello World')
END)
END;
Но тогда вы должны убедиться, что любые переменные, к которым вы обращаетесь из встроенной процедуры, все еще действительны во время вызова обратного вызова, поэтому не используйте локальные переменные, так как они могутхорошо вышли за рамки. Кроме того, убедитесь, что все экземпляры CLASS, которые вы используете во встроенной процедуре, не были свободны или иным образом недействительны между временем создания потока и временем выполнения события обратного вызова.