📄 printfrm.~pas
字号:
unit PrintFrm;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, MapXLib_TLB, Dialogs;
type
TfrmPrint = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Button1: TButton;
PrinterSetupDialog1: TPrinterSetupDialog;
procedure FormShow(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CheckBox2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FMap: TMap;
Proportion: Single;
procedure SetMapPaperUnit(ComboBox: TComboBox);
public
{ Public declarations }
procedure SetMap(AMap: TMap);
end;
var
frmPrint: TfrmPrint;
implementation
{$R *.dfm}
procedure TfrmPrint.FormShow(Sender: TObject);
begin
SetMapPaperUnit(ComboBox1);
Edit1.Text:= FormatFloat('0',FMap.MapPaperWidth);
Edit2.Text:= FormatFloat('0',FMap.MapPaperHeight);
Proportion:= FMap.MapPaperWidth/FMap.MapPaperHeight;
FMap.ExportSelection:= True;
end;
procedure TfrmPrint.SetMapPaperUnit(ComboBox: TComboBox);
begin
Case ComboBox.ItemIndex of
0: FMap.PaperUnit:= 6;
1: FMap.PaperUnit:= 2;
2: FMap.PaperUnit:= 5;
end;
end;
procedure TfrmPrint.ComboBox1Change(Sender: TObject);
begin
SetMapPaperUnit(ComboBox1);
Edit1.Text:= FormatFloat('0',FMap.MapPaperWidth);
Edit2.Text:= FormatFloat('0',FMap.MapPaperHeight);
end;
procedure TfrmPrint.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
Edit2.Text:= FormatFloat('0',StrToFloat(Edit1.Text)/Proportion);
end;
procedure TfrmPrint.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Edit1.Text <> '') and CheckBox1.Checked then
Edit2.Text:= FormatFloat('0',StrToFloat(Edit1.Text)/Proportion);
OKBtn.Enabled:= (Edit1.Text <> '') and (Edit2.Text <> '');
end;
procedure TfrmPrint.Edit2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Edit2.Text <> '') and CheckBox1.Checked then
Edit1.Text:= FormatFloat('0',StrToFloat(Edit2.Text)*Proportion);
OKBtn.Enabled:= (Edit1.Text <> '') and (Edit2.Text <> '');
end;
procedure TfrmPrint.CheckBox2Click(Sender: TObject);
begin
FMap.ExportSelection:= CheckBox2.Checked;
end;
procedure TfrmPrint.Button1Click(Sender: TObject);
begin
PrinterSetupDialog1.Execute;
end;
procedure TfrmPrint.SetMap(AMap: TMap);
begin
FMap:= AMap;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -