unit mckPageSetup; interface uses KOL,KOLPageSetupDialog,Windows, Classes,Graphics, mirror,mckObjs ; type TKOLPageSetupDialog = class(TKOLObj) private fOptions : TPageSetupOptions; fAlwaysReset : Boolean; protected function AdditionalUnits: string; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure SetOptions(const Value : TPageSetupOptions); procedure SetAlwaysReset(const Value : Boolean); public constructor Create( AOwner: TComponent ); override; destructor Destroy;override; published property Options : TPageSetupOptions read fOptions write SetOptions; property AlwaysReset : Boolean read fAlwaysReset write SetAlwaysReset; end; procedure Register; implementation {$R *.dcr} constructor TKOLPageSetupDialog.Create( AOwner: TComponent ); begin inherited Create(Aowner); fAlwaysReset := false; fOptions := [psdMargins,psdOrientation,psdSamplePage,psdPaperControl,psdPrinterControl]; end; destructor TKOLPageSetupDialog.Destroy; begin inherited Destroy; end; procedure TKOLPageSetupDialog.SetAlwaysReset(const Value: Boolean); begin fAlwaysReset := Value; Change; end; procedure TKOLPageSetupDialog.SetOptions(const Value : TPageSetupOptions); begin fOptions := Value; Change; end; function TKOLPageSetupDialog.AdditionalUnits; begin Result := ', KOLPageSetupDialog'; end; procedure TKOLPageSetupDialog.SetupFirst(SL: TStringList; const AName, AParent, Prefix: String); var s : String; begin if (psdMargins in fOptions) then s := s + ',psdMargins'; if (psdOrientation in fOptions) then s := s + ',psdOrientation'; if (psdSamplePage in fOptions) then s := s + ',psdSamplePage'; if (psdPaperControl in fOptions) then s := s + ',psdPaperControl'; if (psdPrinterControl in fOptions) then s := s + ',psdPrinterControl'; if (psdHundredthsOfMillimeters in fOptions) then s := s + ',psdHundredthsOfMillimeters'; if (psdThousandthsOfInches in fOptions) then s := s + ',psdThousandthsOfInches'; if (psdUseMargins in fOptions) then s := s + ',psdUseMargins'; if (psdUseMinMargins in fOptions) then s := s + ',psdUseMinMargins'; if (psdWarning in fOptions) then s := s + ',psdWarning'; if (psdHelp in fOptions) then s := s + ',psdHelp'; if (psdReturnDC in fOptions) then s:= s + ',psdReturnDC'; if s <> '' then if s[1] = ',' then s[1] := Chr(32); SL.Add(Prefix + AName + ' := NewPageSetupDialog(' + AParent + ',[' + s + ']);'); if fAlwaysReset then SL.Add(Prefix + AName + '.AlwaysReset := True;'); end; procedure Register; begin RegisterComponents('KOLAddons', [TKOLPageSetupDialog]); end; end.