tbs0236.pp 565 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. {$R+}
  2. program test_set_subrange;
  3. uses
  4. erroru;
  5. type
  6. enum = (zero,one,two,three);
  7. sub_enum = one..three;
  8. prec = ^trec;
  9. trec = record
  10. dummy : longint;
  11. en : enum;
  12. next : prec;
  13. end;
  14. const
  15. str : array[sub_enum] of string = ('one','two','three');
  16. procedure test;
  17. var hp : prec;
  18. t : sub_enum;
  19. begin
  20. new(hp);
  21. hp^.en:=zero;
  22. new(hp^.next);
  23. hp^.next^.en:=three;
  24. t:=hp^.en;
  25. Writeln('hp^.en = ',str[hp^.en]);
  26. Writeln('hp^.next^.en = ',str[hp^.next^.en]);
  27. end;
  28. begin
  29. require_error(201);
  30. test;
  31. end.