/Source/FR_PROGR.PAS

http://github.com/FastReports/FreeReport · Pascal · 99 lines · 58 code · 16 blank · 25 comment · 2 complexity · 20fa9a08a663f0fe65a67b19a529b190 MD5 · raw file

  1. {*****************************************}
  2. { }
  3. { FastReport v2.3 }
  4. { Progress dialog }
  5. { }
  6. { Copyright (c) 1998-99 by Tzyganenko A. }
  7. { }
  8. {*****************************************}
  9. unit FR_progr;
  10. interface
  11. {$I FR.inc}
  12. uses
  13. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  14. StdCtrls, ExtCtrls, FR_Class, FR_Const;
  15. const
  16. CM_BeforeModal = WM_USER + 1;
  17. type
  18. TfrProgressForm = class(TForm)
  19. Button1: TButton;
  20. Label1: TLabel;
  21. procedure Button1Click(Sender: TObject);
  22. procedure FormCreate(Sender: TObject);
  23. private
  24. { Private declarations }
  25. FDoc: TfrReport;
  26. FOnBeforeModal: TNotifyEvent;
  27. {$IFDEF Delphi9}
  28. procedure CMBeforeModal(Sender: TObject);
  29. {$ELSE}
  30. procedure CMBeforeModal(var Message: TMessage); message CM_BeforeModal;
  31. {$ENDIF}
  32. public
  33. { Public declarations }
  34. FirstCaption: String;
  35. {$IFDEF Delphi9}
  36. Timer: TTimer;
  37. {$ENDIF}
  38. property OnBeforeModal: TNotifyEvent read FOnBeforeModal write FOnBeforeModal;
  39. function Show_Modal(Doc: TfrReport): Word;
  40. end;
  41. var
  42. frProgressForm: TfrProgressForm;
  43. implementation
  44. {$R *.DFM}
  45. function TfrProgressForm.Show_Modal(Doc: TfrReport): Word;
  46. begin
  47. FDoc := Doc;
  48. {$IFDEF Delphi9}
  49. Timer := TTimer.Create(nil);
  50. Timer.Interval := 200;
  51. Timer.OnTimer := CMBeforeModal;
  52. Timer.Enabled := True;
  53. {$ELSE}
  54. PostMessage(Handle, CM_BeforeModal, 0, 0);
  55. {$ENDIF}
  56. Result := ShowModal;
  57. {$IFDEF Delphi9}
  58. Timer.Free;
  59. {$ENDIF}
  60. end;
  61. procedure TfrProgressForm.Button1Click(Sender: TObject);
  62. begin
  63. FDoc.Terminated := True;
  64. ModalResult := mrCancel;
  65. end;
  66. {$IFDEF Delphi9}
  67. procedure TfrProgressForm.CMBeforeModal(Sender: TObject);
  68. begin
  69. Timer.Enabled := False;
  70. if Assigned(FOnBeforeModal) then
  71. FOnBeforeModal(Self);
  72. end;
  73. {$ELSE}
  74. procedure TfrProgressForm.CMBeforeModal(var Message: TMessage);
  75. begin
  76. if Assigned(FOnBeforeModal) then FOnBeforeModal(Self);
  77. end;
  78. {$ENDIF}
  79. procedure TfrProgressForm.FormCreate(Sender: TObject);
  80. begin
  81. Button1.Caption := LoadStr(SCancel);
  82. end;
  83. end.