tw1204.pp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. { Source provided for Free Pascal Bug Report 1204 }
  2. { Submitted by "Marco van de Voort" on 2000-10-29 }
  3. { e-mail: [email protected] }
  4. {$mode delphi}
  5. Uses Sysutils,Classes;
  6. type
  7. TICMPDisplay = procedure(Sender: TObject; Msg : String) of object;
  8. TICMPReply = procedure(Sender: TObject; Error : Integer) of
  9. object;
  10. // The object wich encapsulate the ICMP.DLL
  11. TICMP = class(TObject)
  12. private
  13. FOnDisplay : TICMPDisplay; // Event handler to display
  14. public
  15. constructor Create; virtual;
  16. destructor Destroy; override;
  17. property OnDisplay : TICMPDisplay read FOnDisplay write FOnDisplay;
  18. end;
  19. TPingDisplay = procedure(Sender: TObject; Icmp: TObject; Msg : String) of object;
  20. TPing = class(TComponent)
  21. private
  22. FIcmp : TICMP;
  23. FOnDisplay : TPingDisplay;
  24. protected
  25. procedure IcmpDisplay(Sender: TObject; Msg: String);
  26. public
  27. constructor Create(Owner : TComponent); override;
  28. destructor Destroy; override;
  29. property OnDisplay : TPingDisplay read FOnDisplay
  30. write FOnDisplay;
  31. end;
  32. constructor TICMP.Create;
  33. begin
  34. end;
  35. destructor TICMP.Destroy;
  36. begin
  37. end;
  38. constructor TPing.Create(Owner : TComponent);
  39. begin
  40. Inherited Create(Owner);
  41. FIcmp := TICMP.Create;
  42. FIcmp.OnDisplay := IcmpDisplay;
  43. end;
  44. {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  45. * * *}
  46. destructor TPing.Destroy;
  47. begin
  48. end;
  49. procedure TPing.IcmpDisplay(Sender: TObject; Msg: String);
  50. begin
  51. if Assigned(FOnDisplay) then
  52. FOnDisplay(Self, Sender, Msg);
  53. end;
  54. begin
  55. end.