⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fr_progr.pas

📁 FreeReport 2.34 consists of the report engine, designer and previewer, with capabilities comparable
💻 PAS
字号:

{*****************************************}
{                                         }
{             FastReport v2.3             }
{             Progress dialog             }
{                                         }
{  Copyright (c) 1998-99 by Tzyganenko A. }
{                                         }
{*****************************************}

unit FR_progr;

interface

{$I FR.inc}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, FR_Class, FR_Const;

const
  CM_BeforeModal = WM_USER + 1;

type
  TfrProgressForm = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FDoc: TfrReport;
    FOnBeforeModal: TNotifyEvent;
{$IFDEF Delphi9}
    procedure CMBeforeModal(Sender: TObject);
{$ELSE}
    procedure CMBeforeModal(var Message: TMessage); message CM_BeforeModal;
{$ENDIF}
  public
    { Public declarations }
    FirstCaption: String;
{$IFDEF Delphi9}
    Timer: TTimer;
{$ENDIF}
    property OnBeforeModal: TNotifyEvent read FOnBeforeModal write FOnBeforeModal;
    function Show_Modal(Doc: TfrReport): Word;
  end;

var
  frProgressForm: TfrProgressForm;

implementation

{$R *.DFM}

function TfrProgressForm.Show_Modal(Doc: TfrReport): Word;
begin
  FDoc := Doc;
{$IFDEF Delphi9}
  Timer := TTimer.Create(nil);
  Timer.Interval := 200;
  Timer.OnTimer := CMBeforeModal;
  Timer.Enabled := True;
{$ELSE}
  PostMessage(Handle, CM_BeforeModal, 0, 0);
{$ENDIF}
  Result := ShowModal;
{$IFDEF Delphi9}
  Timer.Free;
{$ENDIF}
end;

procedure TfrProgressForm.Button1Click(Sender: TObject);
begin
  FDoc.Terminated := True;
  ModalResult := mrCancel;
end;

{$IFDEF Delphi9}
procedure TfrProgressForm.CMBeforeModal(Sender: TObject);
begin
  Timer.Enabled := False;
  if Assigned(FOnBeforeModal) then
    FOnBeforeModal(Self);
end;
{$ELSE}
procedure TfrProgressForm.CMBeforeModal(var Message: TMessage);
begin
  if Assigned(FOnBeforeModal) then FOnBeforeModal(Self);
end;
{$ENDIF}

procedure TfrProgressForm.FormCreate(Sender: TObject);
begin
  Button1.Caption := LoadStr(SCancel);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -