You've already forked lazarus-ccr
tvplanit: Fix incorrect page size in print preview.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8531 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -110,8 +110,8 @@ type
|
||||
function GetPageCount: Integer;
|
||||
|
||||
protected
|
||||
function CalculatePageHeight(Printer: TPrinter): Integer;
|
||||
function CalculatePageWidth(Printer: TPrinter): Integer;
|
||||
function CalculatePageHeight(APrinter: TPrinter): Integer;
|
||||
function CalculatePageWidth(APrinter: TPrinter): Integer;
|
||||
procedure ClearPageData;
|
||||
{$IFDEF DELPHI}
|
||||
procedure CMWantSpecialKey(var Msg: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
|
||||
@@ -231,6 +231,9 @@ type
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
OSPrinters;
|
||||
|
||||
constructor TVpPrintPreview.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
@@ -262,7 +265,7 @@ begin
|
||||
FEndDate := Now + 7;
|
||||
FScrollX := 0;
|
||||
FScrollY := 0;
|
||||
FPrinter := Printer;
|
||||
FPrinter := Printers.Printer;
|
||||
|
||||
// Initial size of the control
|
||||
with GetControlClassDefaultSize do
|
||||
@@ -284,39 +287,39 @@ begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
function TVpPrintPreview.CalculatePageHeight(Printer: TPrinter): Integer;
|
||||
function TVpPrintPreview.CalculatePageHeight(APrinter: TPrinter): Integer;
|
||||
var
|
||||
ScreenPPI: Integer;
|
||||
PrinterPPI: Integer;
|
||||
begin
|
||||
ScreenPPI := GetDeviceCaps(Canvas.Handle, LOGPIXELSY);
|
||||
{$IFDEF DELPHI}
|
||||
PrinterPPI := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
|
||||
PrinterPPI := GetDeviceCaps(APrinter.Handle, LOGPIXELSY);
|
||||
{$ELSE}
|
||||
PrinterPPI := Printer.XDpi;
|
||||
PrinterPPI := APrinter.XDpi;
|
||||
{$ENDIF}
|
||||
|
||||
if PrinterPPI <> 0 then
|
||||
Result := Round(ScreenPPI / PrinterPPI * Printer.PageHeight)
|
||||
Result := Round(ScreenPPI / PrinterPPI * APrinter.PageHeight)
|
||||
else
|
||||
Result := ScreenPPI * Printer.PageHeight;
|
||||
Result := ScreenPPI * APrinter.PageHeight;
|
||||
end;
|
||||
|
||||
function TVpPrintPreview.CalculatePageWidth(Printer: TPrinter) : Integer;
|
||||
function TVpPrintPreview.CalculatePageWidth(APrinter: TPrinter) : Integer;
|
||||
var
|
||||
ScreenPPI: Integer;
|
||||
PrinterPPI: Integer;
|
||||
begin
|
||||
ScreenPPI := GetDeviceCaps(Canvas.Handle, LOGPIXELSX);
|
||||
{$IFDEF DELPHI}
|
||||
PrinterPPI := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
|
||||
PrinterPPI := GetDeviceCaps(APrinter.Handle, LOGPIXELSX);
|
||||
{$ELSE}
|
||||
PrinterPPI := Printer.XDpi;
|
||||
PrinterPPI := APrinter.XDpi;
|
||||
|
||||
if PrinterPPI <> 0 then
|
||||
Result := Round(ScreenPPI / PrinterPPI * Printer.PageWidth)
|
||||
Result := Round(ScreenPPI / PrinterPPI * APrinter.PageWidth)
|
||||
else
|
||||
Result := ScreenPPI * Printer.PageHeight;
|
||||
Result := ScreenPPI * APrinter.PageHeight;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
|
Reference in New Issue
Block a user