lazarus-ccr/applications/fpbrowser/printstatusform.pas
sekelsenmat 2cb9e11e9b Adds a simple browser
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1719 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-06-24 08:34:19 +00:00

102 lines
2.2 KiB
ObjectPascal

unit PrintStatusForm;
interface
uses
{$IFNDEF LCL} Windows, Messages, {$ELSE} LclIntf, LMessages, LclType, LResources, {$ENDIF}
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, HTMLView {$IFNDEF LCL}, MetaFilePrinter {$ENDIF};
type
TPrnStatusForm = class(TForm)
StatusLabel: TLabel;
CancelButton: TBitBtn;
procedure CancelButtonClick(Sender: TObject);
private
{ Private declarations }
Viewer: ThtmlViewer;
Canceled: boolean;
{$IFNDEF LCL}
MFPrinter: TMetaFilePrinter;
{$ENDIF}
FromPage, ToPage: integer;
procedure PageEvent(Sender: TObject; PageNum: integer; var Stop: boolean);
public
{ Public declarations }
{$IFNDEF LCL}
procedure DoPreview(AViewer: ThtmlViewer; AMFPrinter: TMetaFilePrinter;
var Abort: boolean);
{$ENDIF}
procedure DoPrint(AViewer: ThtmlViewer; FromPg, ToPg: integer;
var Abort: boolean);
end;
var
PrnStatusForm: TPrnStatusForm;
implementation
{$IFNDEF LCL}
{$R *.DFM}
{$ENDIF}
{$IFNDEF LCL}
procedure TPrnStatusForm.DoPreview(AViewer: ThtmlViewer; AMFPrinter: TMetaFilePrinter;
var Abort: boolean);
begin
Viewer := AViewer;
MFPrinter := AMFPrinter;
Viewer.OnPageEvent := PageEvent;
try
Show;
Viewer.PrintPreview(MFPrinter);
Hide;
Abort := Canceled;
finally
Viewer.OnPageEvent := Nil;
end;
end;
{$ENDIF}
procedure TPrnStatusForm.DoPrint(AViewer: ThtmlViewer; FromPg, ToPg: integer;
var Abort: boolean);
begin
Viewer := AViewer;
FromPage := FromPg;
ToPage := ToPg;
Viewer.OnPageEvent := PageEvent;
try
Show;
Viewer.Print(FromPage, ToPage);
Hide;
Abort := Canceled;
finally
Viewer.OnPageEvent := Nil;
end;
end;
procedure TPrnStatusForm.PageEvent(Sender: TObject; PageNum: integer; var Stop: boolean);
begin
if Canceled then
Stop := True
else
if PageNum = 0 then
StatusLabel.Caption := 'Formating'
else
StatusLabel.Caption := 'Page Number '+ IntToStr(PageNum);
Update;
end;
procedure TPrnStatusForm.CancelButtonClick(Sender: TObject);
begin
Canceled := True;
end;
initialization
{$IFDEF LCL}
{$I PrintStatusForm.lrs} {Include form's resource file}
{$ENDIF}
end.