📄 ieprnform2.pas
字号:
(*
Copyright (c) 1998-2007 by HiComponents. All rights reserved.
This software comes without express or implied warranty.
In no case shall the author be liable for any damage or unwanted behavior of any
computer hardware and/or software.
HiComponents grants you the right to include the compiled component
in your application, whether COMMERCIAL, SHAREWARE, or FREEWARE,
BUT YOU MAY NOT DISTRIBUTE THIS SOURCE CODE OR ITS COMPILED .DCU IN ANY FORM.
ImageEn, IEvolution and ImageEn ActiveX may not be included in any commercial,
shareware or freeware libraries or components.
email: support@hicomponents.com
http://www.hicomponents.com
*)
unit ieprnform2;
{$R-}
{$Q-}
{$I ie.inc}
{$IFDEF IEINCLUDEPRINTDIALOGS}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ImageEnView, ImageEnIO, ieview, hyiedefs, hyieutils,
ComCtrls, ImageEnProc, ievect, ExtCtrls;
type
TfiePrnForm2 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
GroupBox2: TGroupBox;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton1: TSpeedButton;
GroupBox3: TGroupBox;
ComboBox1: TComboBox;
Label5: TLabel;
Label6: TLabel;
Edit5: TEdit;
Label7: TLabel;
Edit6: TEdit;
Label8: TLabel;
GroupBox4: TGroupBox;
Edit7: TEdit;
Label9: TLabel;
Button1: TButton;
Button2: TButton;
GroupBox5: TGroupBox;
ImageEnView1: TImageEnView;
UpDown1: TUpDown;
UpDown2: TUpDown;
UpDown3: TUpDown;
UpDown4: TUpDown;
UpDown5: TUpDown;
UpDown6: TUpDown;
UpDown7: TUpDown;
Button4: TButton;
PrinterSetupDialog1: TPrinterSetupDialog;
GroupBox6: TGroupBox;
Label10: TLabel;
ComboBox2: TComboBox;
Image1: TImage;
procedure ComboBox1Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure printpreview(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown3Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown4Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown7Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown5Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown6Click(Sender: TObject; Button: TUDBtnType);
procedure Button4Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure incdecmargins(text: TEdit; Button: TUDBtnType);
procedure SetLanguage_units;
function XMult:double;
public
{ Public declarations }
io: TImageEnIO;
fDialogsMeasureUnit: TIEDialogsMeasureUnit;
fLanguage: TMsgLanguage;
fTaskName: string;
fPrintPreviewParams:TIOPrintPreviewParams;
PrintAnnotations:boolean;
activating:boolean;
procedure SetLanguage(l: TMsgLanguage);
procedure LoadParameters;
procedure SaveParameters;
end;
implementation
uses printers;
{$R *.DFM}
const
FLOATINC = 0.01;
procedure tfiePrnForm2.LoadParameters;
begin
// get parameters from fPrintPreviewParams
Edit1.Text:=FloatToStrF(fPrintPreviewParams.MarginTop, ffGeneral,4,4);
Edit2.Text:=FloatToStrF(fPrintPreviewParams.MarginLeft, ffGeneral,4,4);
Edit3.Text:=FloatToStrF(fPrintPreviewParams.MarginRight, ffGeneral,4,4);
Edit4.Text:=FloatToStrF(fPrintPreviewParams.MarginBottom, ffGeneral,4,4);
case fPrintPreviewParams.Position of
ppTopLeft: SpeedButton1.Down:=True;
ppTop: SpeedButton2.Down:=True;
ppTopRight: SpeedButton3.Down:=True;
ppLeft: SpeedButton4.Down:=True;
ppCenter: SpeedButton5.Down:=True;
ppRight: SpeedButton6.Down:=True;
ppBottomLeft: SpeedButton7.Down:=True;
ppBottom: SpeedButton8.Down:=True;
ppBottomRight: SpeedButton9.Down:=True;
end;
ComboBox1.ItemIndex:=integer(fPrintPreviewParams.Size);
if fPrintPreviewParams.Size=psSpecifiedSize then
begin
Edit5.Enabled:=true;
Edit6.Enabled:=true;
UpDown5.Enabled:=true;
UpDown6.Enabled:=true;
Label5.Enabled:=true;
Label6.Enabled:=true;
Label7.Enabled:=true;
Label8.Enabled:=true;
Edit5.Visible:=true;
Edit6.Visible:=true;
UpDown5.Visible:=true;
UpDown6.Visible:=true;
Label5.Visible:=true;
Label6.Visible:=true;
Label7.Visible:=true;
Label8.Visible:=true;
end;
if fPrintPreviewParams.Width<=0 then
Edit5.Text:=FloatToStrF( (io.IEBitmap.Width/IO.Params.DpiX)*xmult , ffGeneral,4,4)
else
Edit5.Text:=FloatToStrF(fPrintPreviewParams.Width, ffGeneral,4,4);
if fPrintPreviewParams.Height<=0 then
Edit6.Text:=FloatToStrF( (io.IEBitmap.Height/io.Params.DpiY)*xmult, ffGeneral,4,4)
else
Edit6.Text:=FloatToStrF(fPrintPreviewParams.Height, ffGeneral,4,4);
Edit7.Text:=FloatToStrF(fPrintPreviewParams.Gamma, ffGeneral,4,4);
end;
procedure tfiePrnForm2.SaveParameters;
begin
// put parameters to fPrintPreviewParams
fPrintPreviewParams.MarginTop:=IEStrToFloatDef(Edit1.Text,1);
fPrintPreviewParams.MarginLeft:=IEStrToFloatDef(Edit2.Text,1);
fPrintPreviewParams.MarginRight:=IEStrToFloatDef(Edit3.Text,1);
fPrintPreviewParams.MarginBottom:=IEStrToFloatDef(Edit4.Text,1);
if SpeedButton1.Down then
fPrintPreviewParams.Position:=ppTopLeft
else if SpeedButton2.Down then
fPrintPreviewParams.Position:=ppTop
else if SpeedButton3.Down then
fPrintPreviewParams.Position:=ppTopRight
else if SpeedButton4.Down then
fPrintPreviewParams.Position:=ppLeft
else if SpeedButton5.Down then
fPrintPreviewParams.Position:=ppCenter
else if SpeedButton6.Down then
fPrintPreviewParams.Position:=ppRight
else if SpeedButton7.Down then
fPrintPreviewParams.Position:=ppBottomLeft
else if SpeedButton8.Down then
fPrintPreviewParams.Position:=ppBottom
else if SpeedButton9.Down then
fPrintPreviewParams.Position:=ppBottomRight;
fPrintPreviewParams.Size:=TIOPrintPreviewSize(ComboBox1.ItemIndex);
// 2.2.4
if (fPrintPreviewParams.Size=psSpecifiedSize) then
begin
fPrintPreviewParams.Width:=IEStrToFloatDef(Edit5.Text,6);
fPrintPreviewParams.Height:=IEStrToFloatDef(Edit6.Text,4);
end
else
begin
fPrintPreviewParams.Width:=-1;
fPrintPreviewParams.Height:=-1;
end;
fPrintPreviewParams.Gamma:=IEStrToFloatDef(Edit7.Text,1);
end;
procedure TfiePrnForm2.FormActivate(Sender: TObject);
begin
Application.ProcessMessages; // first draws all controls (to avoid "Swiss Cheese")
activating:=true;
LoadParameters;
if ComboBox1.ItemIndex<0 then
ComboBox1.ItemIndex := 1;
GroupBox6.visible := (fDialogsMeasureUnit = ieduSelectableDefInches) or (fDialogsMeasureUnit = ieduSelectableDefCm);
if (fDialogsMeasureUnit = ieduSelectableDefInches) then
ComboBox2.ItemIndex := 0
else if (fDialogsMeasureUnit = ieduSelectableDefCm) then
ComboBox2.ItemIndex := 1;
activating:=false;
printpreview(Sender);
end;
// Changes Size combobox
procedure TfiePrnForm2.ComboBox1Change(Sender: TObject);
var
en: boolean;
begin
en := ComboBox1.ItemIndex = 3; // true when Specified Sizes
Label5.Enabled := en;
Label6.Enabled := en;
Label7.Enabled := en;
Label8.Enabled := en;
Edit5.Enabled := en;
Edit6.Enabled := en;
UpDown5.Enabled:=en;
UpDown6.Enabled:=en;
Edit5.Visible:=en;
Edit6.Visible:=en;
UpDown5.Visible:=en;
UpDown6.Visible:=en;
Label5.Visible := en;
Label6.Visible := en;
Label7.Visible := en;
Label8.Visible := en;
printpreview(Sender);
end;
// Preview
procedure TfiePrnForm2.Button3Click(Sender: TObject);
begin
printpreview(Sender);
end;
// OK (print)
procedure TfiePrnForm2.Button1Click(Sender: TObject);
begin
SaveParameters;
printpreview(Sender);
end;
function tfiePrnForm2.XMult:double;
begin
if (fDialogsMeasureUnit = ieduCm) or (fDialogsMeasureUnit = ieduSelectableDefCm) then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -