tpara1.pp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. uses
  2. erroru;
  3. {$ifdef HASOUT}
  4. type
  5. tr1 = record
  6. l1,l2 : longint;
  7. end;
  8. procedure p1(out b : byte);
  9. begin
  10. if b<>0 then
  11. do_error(1001);
  12. b:=$aa;
  13. end;
  14. procedure p2(out w : word);
  15. begin
  16. if w<>0 then
  17. do_error(1002);
  18. w:=$aaaa;
  19. end;
  20. procedure p3(out d : dword);
  21. begin
  22. if d<>0 then
  23. do_error(1003);
  24. d:=$aaaaaaaa;
  25. end;
  26. procedure p4(out r : tr1);
  27. begin
  28. if r.l1<>0 then
  29. do_error(1004);
  30. if r.l2<>0 then
  31. do_error(1005);
  32. r.l1:=$aaaaaaaa;
  33. r.l2:=$aaaaaaaa;
  34. end;
  35. procedure p5(out a : ansistring);
  36. begin
  37. if a<>'' then
  38. do_error(1000);
  39. a:='Now it''s another ansistring';
  40. end;
  41. var
  42. b : byte;
  43. w : word;
  44. d : dword;
  45. r1 : tr1;
  46. a : ansistring;
  47. begin
  48. b:=$ff;
  49. w:=$ffff;
  50. d:=$ffffffff;
  51. a:='An ansistring';
  52. r1.l1:=$ffffffff;
  53. r1.l2:=$ffffffff;
  54. p1(b);
  55. if b<>$aa then
  56. do_error(1100);
  57. p2(w);
  58. if w<>$aaaa then
  59. do_error(1101);
  60. p3(d);
  61. if d<>$aaaaaaaa then
  62. do_error(1102);
  63. p4(r1);
  64. if r1.l1<>$aaaaaaaa then
  65. do_error(1103);
  66. if r1.l2<>$aaaaaaaa then
  67. do_error(1104);
  68. p5(a);
  69. if a<>'Now it''s another ansistring' then
  70. do_error(1105);
  71. end.
  72. {$else}
  73. begin
  74. Writeln('No out parameter support');
  75. end.
  76. {$endif HASOUT}