📄 fr_prdlg.pas
字号:
{******************************************}
{ }
{ FastReport v2.4 }
{ Print dialog }
{ }
{ Copyright (c) 1998-2001 by Tzyganenko A. }
{ }
{******************************************}
unit FR_PrDlg;
interface
{$I FR.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, FR_Ctrls, ExtCtrls;
type
TfrPrintForm = class(TForm)
GroupBox2: TGroupBox;
RB1: TRadioButton;
RB2: TRadioButton;
RB3: TRadioButton;
E2: TEdit;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
GroupBox1: TGroupBox;
CB1: TComboBox;
PropButton: TButton;
GroupBox3: TGroupBox;
Label1: TLabel;
E1: TEdit;
Panel1: TPanel;
frSpeedButton1: TfrSpeedButton;
frSpeedButton2: TfrSpeedButton;
CollateCB: TCheckBox;
CollateImg: TImage;
NonCollateImg: TImage;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Image1: TImage;
CB2: TComboBox;
PB1: TPaintBox;
procedure CB1DrawItem(Control: TWinControl; Index: Integer;
ARect: TRect; State: TOwnerDrawState);
procedure FormCreate(Sender: TObject);
procedure PropButtonClick(Sender: TObject);
procedure CB1Click(Sender: TObject);
procedure E2Click(Sender: TObject);
procedure frSpeedButton1Click(Sender: TObject);
procedure frSpeedButton2Click(Sender: TObject);
procedure RB3Click(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure CollateCBClick(Sender: TObject);
procedure PB1Paint(Sender: TObject);
private
{ Private declarations }
OldIndex: Integer;
procedure Localize;
public
{ Public declarations }
end;
implementation
{$R *.DFM}
uses FR_Const, FR_Prntr, Printers, FR_Utils;
procedure TfrPrintForm.Localize;
begin
Caption := frLoadStr(frRes + 040);
GroupBox1.Caption := frLoadStr(frRes + 041);
PropButton.Caption := frLoadStr(frRes + 042);
GroupBox3.Caption := frLoadStr(frRes + 043);
GroupBox2.Caption := frLoadStr(frRes + 044);
RB1.Caption := frLoadStr(frRes + 045);
RB2.Caption := frLoadStr(frRes + 046);
RB3.Caption := frLoadStr(frRes + 047);
Label2.Caption := frLoadStr(frRes + 048);
Label4.Caption := frLoadStr(frRes + 049);
Label1.Caption := frLoadStr(frRes + 050);
Label3.Caption := frLoadStr(frRes + 051);
Label5.Caption := frLoadStr(frRes + 052);
Button1.Caption := frLoadStr(SOk);
Button2.Caption := frLoadStr(SCancel);
CB2.Items.Add(frLoadStr(frRes + 053));
CB2.Items.Add(frLoadStr(frRes + 054));
CB2.Items.Add(frLoadStr(frRes + 055));
end;
procedure TfrPrintForm.FormCreate(Sender: TObject);
begin
CB1.Items.Assign(Printer.Printers);
CB1.ItemIndex := Printer.PrinterIndex;
OldIndex := Printer.PrinterIndex;
CollateCBClick(nil);
Localize;
CB2.ItemIndex := 0;
CB2.Left := Label5.Left + Label5.Width + 11;
end;
procedure TfrPrintForm.FormDeactivate(Sender: TObject);
begin
if ModalResult <> mrOk then
Prn.PrinterIndex := OldIndex;
end;
procedure TfrPrintForm.CB1DrawItem(Control: TWinControl; Index: Integer;
ARect: TRect; State: TOwnerDrawState);
var
r: TRect;
begin
r := ARect;
r.Right := r.Left + 18;
r.Bottom := r.Top + 16;
OffsetRect(r, 2, 0);
with CB1.Canvas do
begin
FillRect(ARect);
BrushCopy(r, Image1.Picture.Bitmap, Rect(0, 0, 18, 16), clOlive);
TextOut(ARect.Left + 24, ARect.Top + 1, CB1.Items[Index]);
end;
end;
procedure TfrPrintForm.PropButtonClick(Sender: TObject);
begin
Prn.PropertiesDlg;
end;
procedure TfrPrintForm.CB1Click(Sender: TObject);
begin
Prn.PrinterIndex := CB1.ItemIndex;
end;
procedure TfrPrintForm.E2Click(Sender: TObject);
begin
RB3.Checked := True;
end;
procedure TfrPrintForm.frSpeedButton1Click(Sender: TObject);
var
i: Integer;
begin
i := StrToInt(E1.Text);
Inc(i);
E1.Text := IntToStr(i);
end;
procedure TfrPrintForm.frSpeedButton2Click(Sender: TObject);
var
i: Integer;
begin
i := StrToInt(E1.Text);
Dec(i);
if i <= 0 then i := 1;
E1.Text := IntToStr(i);
end;
procedure TfrPrintForm.RB3Click(Sender: TObject);
begin
E2.SetFocus;
end;
procedure TfrPrintForm.Label3Click(Sender: TObject);
begin
CollateCB.Checked := not CollateCB.Checked;
end;
procedure TfrPrintForm.CollateCBClick(Sender: TObject);
begin
PB1Paint(nil);
end;
procedure TfrPrintForm.PB1Paint(Sender: TObject);
begin
with PB1.Canvas do
begin
Brush.Color := clBtnFace;
FillRect(Rect(0, 0, PB1.Width, PB1.Height));
if CollateCB.Checked then
BrushCopy(Rect(8, 0, 82, 53), CollateImg.Picture.Bitmap, Rect(0, 0, 74, 53), clSilver) else
BrushCopy(Rect(0, 8, 92, 48), NonCollateImg.Picture.Bitmap, Rect(0, 0, 92, 40), clSilver);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -