tb0299.pp 828 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. {$mode objfpc}
  2. type
  3. tmyclass = class of tmyobject;
  4. tmyobject = class
  5. end;
  6. { only a stupid test routine }
  7. function getanchestor(c : tclass) : tclass;
  8. var
  9. l : longint;
  10. begin
  11. getanchestor:=tobject;
  12. l:=l+1;
  13. end;
  14. var
  15. classref : tclass;
  16. myclassref : tmyclass;
  17. const
  18. constclassref1 : tclass = tobject;
  19. constclassref2 : tclass = nil;
  20. constclassref3 : tclass = tobject;
  21. begin
  22. { simple test }
  23. classref:=classref;
  24. { more difficult }
  25. classref:=myclassref;
  26. classref:=tobject;
  27. myclassref:=tmyobject;
  28. classref:=getanchestor(myclassref);
  29. if (constclassref1.classname<>'TOBJECT') or
  30. (constclassref2<>nil) or
  31. (myclassref.classname<>'TMYOBJECT') or
  32. (classref.classname<>'TOBJECT') then
  33. begin
  34. writeln('Error');
  35. halt(1);
  36. end;
  37. end.