mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-17 15:02:40 +02:00
97 lines
2.2 KiB
ObjectPascal
97 lines
2.2 KiB
ObjectPascal
{
|
|
*****************************************************************************
|
|
This file is part of the Printer4Lazarus package
|
|
|
|
See the file COPYING.modifiedLGPL.txt, included in this distribution,
|
|
for details about the license.
|
|
*****************************************************************************
|
|
}
|
|
unit udlgpagesetup;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
// LCL
|
|
Classes, Forms, ExtCtrls, StdCtrls, Menus,
|
|
// Printers
|
|
Printers, framePageSetup;
|
|
|
|
type
|
|
|
|
{ TDlgPageSetup }
|
|
|
|
TDlgPageSetup = class(TForm)
|
|
btnCancel: TButton;
|
|
btnPrinter: TButton;
|
|
btnOk: TButton;
|
|
frmPageSetup: TframePageSetup;
|
|
PanelButtons: TPanel;
|
|
procedure btnPrinterClick(Sender: TObject);
|
|
private
|
|
FMenu: TPopupMenu;
|
|
procedure MenuPrinterClick(Sender: TObject);
|
|
public
|
|
procedure SetControls(AEnablePreview, AEnableMargins, AEnablePapers,
|
|
AEnableOrientation: boolean);
|
|
end;
|
|
|
|
var
|
|
dlgPageSetup: TDlgPageSetup;
|
|
|
|
implementation
|
|
|
|
{$R udlgpagesetup.lfm}
|
|
|
|
{ TDlgPageSetup }
|
|
|
|
procedure TDlgPageSetup.btnPrinterClick(Sender: TObject);
|
|
var
|
|
mi: TMenuItem;
|
|
pnt: TPoint;
|
|
i: integer;
|
|
begin
|
|
if not Assigned(FMenu) then
|
|
FMenu:= TPopupMenu.Create(Self);
|
|
FMenu.Items.Clear;
|
|
|
|
if Printer.Printers.Count=0 then exit;
|
|
for i:= 0 to Printer.Printers.Count-1 do
|
|
begin
|
|
mi:= TMenuItem.Create(Self);
|
|
mi.Caption:= Printer.Printers[i];
|
|
mi.Checked:= i=Printer.PrinterIndex;
|
|
mi.RadioItem:= true;
|
|
mi.OnClick:= @MenuPrinterClick;
|
|
FMenu.Items.Add(mi);
|
|
end;
|
|
|
|
pnt:= btnPrinter.ClientToScreen(Point(0, 0));
|
|
FMenu.PopUp(pnt.X, pnt.Y);
|
|
end;
|
|
|
|
procedure TDlgPageSetup.MenuPrinterClick(Sender: TObject);
|
|
begin
|
|
if Sender is TMenuItem then
|
|
begin
|
|
Printer.SetPrinter((Sender as TMenuItem).Caption);
|
|
frmPageSetup.Initialize(
|
|
frmPageSetup.EnablePreview,
|
|
frmPageSetup.EnableMargins,
|
|
frmPageSetup.EnablePapers,
|
|
frmPageSetup.EnableOrientation
|
|
);
|
|
frmPageSetup.UpdatePageSize;
|
|
end;
|
|
end;
|
|
|
|
procedure TDlgPageSetup.SetControls(AEnablePreview, AEnableMargins, AEnablePapers,
|
|
AEnableOrientation: boolean);
|
|
begin
|
|
frmPageSetup.Initialize(AEnablePreview, AEnableMargins, AEnablePapers, AEnableOrientation);
|
|
end;
|
|
|
|
end.
|
|
|