tclass7.pp 872 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. { %version=1.1 }
  2. {$ifdef fpc}
  3. {$mode delphi}
  4. {$endif}
  5. type
  6. tClassA=class
  7. procedure DefaultHandler(var Message);override;
  8. end;
  9. tClassB=class(tClassA)
  10. procedure test(var m);message 1;
  11. end;
  12. tClassC=class(tClassB)
  13. procedure test00(var m);message 1;
  14. end;
  15. var
  16. counter : longint;
  17. procedure tClassA.DefaultHandler(var Message);
  18. begin
  19. writeln('DDDDDDDDDD');
  20. inc(counter);
  21. end;
  22. procedure tClassB.test(var m);
  23. begin
  24. writeln('BBBBBBBBBB');
  25. inc(counter);
  26. inherited;
  27. end;
  28. procedure tClassC.test00(var m);
  29. begin
  30. writeln('CCCCCCCCCC');
  31. inc(counter);
  32. inherited;
  33. end;
  34. var
  35. C:tObject;
  36. One:longint;
  37. begin
  38. One:=1;
  39. C:=tClassC.Create;
  40. C.Dispatch(One);
  41. C.Destroy;
  42. if counter<>3 then
  43. begin
  44. writeln('Error in class DefaultHandler for messages!');
  45. {$ifdef VER1_0}
  46. halt(2);
  47. {$else not VER1_0}
  48. halt(1);
  49. {$endif not VER1_0}
  50. end;
  51. end.