- Код: Выделить всё
program test2;
type
THookMonitorOfObject = procedure(const Buffer: string) of object;
Main = class(TObject)
str: string;
procmain: THookMonitorOfObject;
constructor Create();
procedure HookMonitor(const Buffer: string);
procedure HookWrite;
end;
constructor Main.Create();
begin
inherited;
str := 'test';
end;
procedure main.HookMonitor(const Buffer: string);
begin
writeln(Buffer);
readln;
end;
procedure main.HookWrite;
begin
procmain := @HookMonitor;
procmain(str);
end;
procedure main.HookMonitor(const Buffer: string);
begin
writeln(Buffer);
end;
var
My: main;
begin
My.Create;
My.HookWrite;
My.Free;
end.
Выдает ошибку при запуске.
При этом просто procmain := HookMonitor; , какого-то х. , не компилируется
Вопрос - в чем у меня ошибка.
зы: данный пример чисто абстрактный, но столкнулся с таким при написании большой программы, а альтернативным способом решать очень не хочется ибо уже большая рабочая структура отлажена.
ззы: мануал читал.