⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ieprnform2.pas

📁 ·ImageEn 2.3.0 ImageEn一组用于图像处理、查看和分析的Delphi控件。能够保存几种图像格式
💻 PAS
📖 第 1 页 / 共 2 页
字号:
(*
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 + -