tw29491.pp 452 B

12345678910111213141516171819202122232425262728
  1. program test;
  2. {$mode objfpc}{$H+}
  3. type
  4. TCallback = procedure of object;
  5. TTestObject = class (TObject)
  6. public
  7. class procedure Test;
  8. end;
  9. class procedure TTestObject.Test;
  10. begin
  11. writeln(Self.ClassName); // Self should point to TTestObject (class)
  12. if Self.ClassName<>'TTestObject' then
  13. halt(1);
  14. end;
  15. var
  16. Callback: TCallback;
  17. O: TTestObject;
  18. begin
  19. O := TTestObject.Create;
  20. Callback := @O.Test;
  21. Callback();
  22. O.Free;
  23. end.