tpvarglobaldelphi.pp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. program tpvarglobaldelphi;
  2. {$mode delphi}
  3. uses
  4. jdk15;
  5. type
  6. tmprec = record
  7. b: byte;
  8. end;
  9. tmypvar = function(x: longint; w: word; r: tmprec; var ro: tmprec): shortstring;
  10. function test(x: longint; w: word; r: tmprec; var ro: tmprec): shortstring;
  11. begin
  12. jlsystem.fout.print('x: ');
  13. jlsystem.fout.println(x);
  14. jlsystem.fout.print('w: ');
  15. jlsystem.fout.println(w);
  16. jlsystem.fout.print('r.b: ');
  17. jlsystem.fout.println(r.b);
  18. jlsystem.fout.print('ro.b: ');
  19. jlsystem.fout.println(ro.b);
  20. if x<>1 then
  21. raise jlexception.create('x wrong on input');
  22. if w<>$ffff then
  23. raise jlexception.create('w wrong on input');
  24. if r.b<>21 then
  25. raise jlexception.create('r.b wrong on input');
  26. if ro.b<>42 then
  27. raise jlexception.create('ro.b wrong on input');
  28. r.b:=123;
  29. ro.b:=123;
  30. result:='abc';
  31. end;
  32. var
  33. mypvar: tmypvar;
  34. r, ro: tmprec;
  35. res: shortstring;
  36. begin
  37. r.b:=21;
  38. ro.b:=42;
  39. mypvar:=test;
  40. res:=mypvar(1,$ffff,r,ro);
  41. if r.b<>21 then
  42. raise jlexception.create('r changed');
  43. if ro.b<>123 then
  44. raise jlexception.create('ro not changed');
  45. if res<>'abc' then
  46. raise jlexception.create('result wrong');
  47. end.