Фрагмент в твоем коде
#pas
//THiAsmClass.doPath(path);
//THiAsmClass(Pointer(P))._hi_onEvent(onPathDbClc, path);
//_hi_onEvent(onPath, path);
//_hi_onEvent(onPathDbClc, path);
#pas
THiAsmClass(Pointer(P)).doPath(path); //Явно указываем, что Р указывает на THiAsmClass в котором есть метод doPath
THiAsmClass(Pointer(P))._hi_onEvent(onPathDbClc, path);
//_hi_onEvent(onPath, path);
//_hi_onEvent(onPathDbClc, path);
Также раскоментируй var p:Longint;
Замени
#pas
procedure THiAsmClass.Create;
begin
p:=Longint(Self);
end;
на
#pas
constructor THiAsmClass.Create;
begin
p:=Longint(Self);
end;
И проверь, действительно ли вызывается процедура ChildCallback (положи в нее MBox).