📄 teeprevi.pas
字号:
Position = 99
TabOrder = 0
OnChange = TrackBar1Change
end
end
object PanelMargins: TPanel
Left = 1
Top = 162
Width = 110
Height = 58
Align = alTop
BevelOuter = bvNone
TabOrder = 4
object BReset: TButton
Left = 4
Top = 5
Width = 101
Height = 25
HelpContext = 1331
Caption = 'Reset &Margins'
Enabled = False
TabOrder = 0
OnClick = BResetClick
end
object ShowMargins: TCheckBox
Left = 7
Top = 36
Width = 100
Height = 15
HelpContext = 1331
Caption = '&View Margins'
Checked = True
State = cbChecked
TabOrder = 1
OnClick = ShowMarginsClick
end
end
object Panel4: TPanel
Left = 1
Top = 286
Width = 110
Height = 54
Align = alClient
BevelOuter = bvNone
TabOrder = 3
object CBProp: TCheckBox
Left = 11
Top = 5
Width = 92
Height = 17
HelpContext = 889
Caption = 'Proport&ional'
Checked = True
State = cbChecked
TabOrder = 0
OnClick = CBPropClick
end
end
end
*)
end;
{$ENDIF}
Procedure TChartPreview.ResetMargins;
begin
With TeePreviewPanel1 do
if Assigned(Panel) then
begin
if Panel.PrintProportional and (Printer.Printers.Count>0) then
begin
OldMargins:=Panel.CalcProportionalMargins;
Panel.PrintMargins:=OldMargins;
end;
TeePreviewPanel1ChangeMargins(Self,False,Panel.PrintMargins);
Invalidate;
end;
end;
procedure TChartPreview.FormShow(Sender: TObject);
var tmpClass: TTeePageNavigatorClass;
begin
tmpClass:=PageNavigatorClass;
if Assigned(tmpClass) then
begin
PageNavigator1:=tmpClass.Create(Self);
PageNavigator1.Parent:=Panel2;
PageNavigator1.Align:=alBottom;
PageNavigator1.HelpContext:=1488;
PageNavigator1.OnButtonClicked:=Navigator1ButtonClicked;
end;
Screen.Cursor:=crDefault;
if Tag<>{$IFDEF CLR}nil{$ELSE}0{$ENDIF} then
TeePreviewPanel1.Panel:=TCustomTeePanel({$IFDEF CLR}TObject{$ENDIF}(Tag));
CBPrinters.Items:=Printer.Printers;
if Printer.Printers.Count>0 then
begin
{$IFDEF CLX}
CBPrinters.ItemIndex:=0;
{$ELSE}
CBPrinters.ItemIndex:=Printer.PrinterIndex;
{$ENDIF}
{$IFNDEF TEEOCX}
if TeeChangePaperOrientation then
Printer.Orientation:=poLandscape;
{$ENDIF}
CheckOrientation;
end
else
begin
EnableControls(False,[BPrint,BSetupPrinter,Orientation]);
end;
With TeePreviewPanel1 do
if Assigned(Panel) then
begin
CBProp.Checked:=Panel.PrintProportional;
Resolution.Position:=Panel.PrintResolution+100;
OldMargins:=Panel.PrintMargins;
ResetMargins;
if Assigned(PageNavigator1) then
PageNavigator1.Panel:=Panel; { 5.03 }
end
else
begin
CBProp.Enabled:=False;
Resolution.Enabled:=False;
GBMargins.Enabled:=False;
BPrint.Enabled:=False;
end;
CheckBox1.Checked:=TeePreviewPanel1.AsBitmap;
TeeTranslateControl(Self);
end;
procedure TChartPreview.BSetupPrinterClick(Sender: TObject);
begin
PrinterSetupDialog1.Execute;
CBPrinters.Items:=Printer.Printers;
{$IFNDEF CLX}
CBPrinters.ItemIndex:=Printer.PrinterIndex;
{$ENDIF}
CheckOrientation;
TeePreviewPanel1.Invalidate;
end;
procedure TChartPreview.CBPrintersChange(Sender: TObject);
begin
{$IFNDEF CLX}
Printer.PrinterIndex:=CBPrinters.ItemIndex;
{$ENDIF}
CheckOrientation;
OrientationClick(Self);
end;
procedure TChartPreview.OrientationClick(Sender: TObject);
begin
Printer.Orientation:=TPrinterOrientation(Orientation.ItemIndex);
ResetMargins;
TeePreviewPanel1.Invalidate;
end;
procedure TChartPreview.ChangeMargin(UpDown:TUpDown; Var APos:Integer; OtherSide:Integer);
begin
if Showing then
begin
if UpDown.Position+OtherSide<100 then
begin
APos:=UpDown.Position;
if not ChangingMargins then
With TeePreviewPanel1 do
Begin
Invalidate;
BReset.Enabled:=not EqualRect(Panel.PrintMargins,OldMargins);
CBProp.Checked:=False;
end;
end
else UpDown.Position:=APos;
end;
end;
procedure TChartPreview.SETopMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
if Showing then
{$IFDEF CLR}
begin
R:=TeePreviewPanel1.Panel.PrintMargins;
ChangeMargin(UDTopMa,R.Top,R.Bottom);
TeePreviewPanel1.Panel.PrintMargins:=R;
end;
{$ELSE}
with TeePreviewPanel1.Panel.PrintMargins do
ChangeMargin(UDTopMa,Top,Bottom);
{$ENDIF}
end;
procedure TChartPreview.SERightMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
if Showing then
{$IFDEF CLR}
begin
R:=TeePreviewPanel1.Panel.PrintMargins;
ChangeMargin(UDRightMa,R.Right,R.Left);
TeePreviewPanel1.Panel.PrintMargins:=R;
end;
{$ELSE}
with TeePreviewPanel1.Panel.PrintMargins do
ChangeMargin(UDRightMa,Right,Left);
{$ENDIF}
end;
procedure TChartPreview.SEBotMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
if Showing then
{$IFDEF CLR}
begin
R:=TeePreviewPanel1.Panel.PrintMargins;
ChangeMargin(UDBotMa,R.Bottom,R.Top);
TeePreviewPanel1.Panel.PrintMargins:=R;
end;
{$ELSE}
with TeePreviewPanel1.Panel.PrintMargins do
ChangeMargin(UDBotMa,Bottom,Top);
{$ENDIF}
end;
procedure TChartPreview.SELeftMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
if Showing then
{$IFDEF CLR}
begin
R:=TeePreviewPanel1.Panel.PrintMargins;
ChangeMargin(UDLeftMa,R.Left,R.Right);
TeePreviewPanel1.Panel.PrintMargins:=R;
end;
{$ELSE}
with TeePreviewPanel1.Panel.PrintMargins do
ChangeMargin(UDLeftMa,Left,Right);
{$ENDIF}
end;
procedure TChartPreview.ShowMarginsClick(Sender: TObject);
begin
TeePreviewPanel1.Margins.Visible:=ShowMargins.Checked;
end;
procedure TChartPreview.FormCreate(Sender: TObject);
begin
ChangingMargins:=True;
ChangingProp:=False;
PrinterSetupDialog1:=TPrinterSetupDialog.Create(Self);
end;
procedure TChartPreview.BResetClick(Sender: TObject);
begin
With TeePreviewPanel1 do
Begin
Panel.PrintMargins:=OldMargins;
TeePreviewPanel1ChangeMargins(Self,False,Panel.PrintMargins);
Invalidate;
end;
BReset.Enabled:=False;
end;
Procedure TChartPreview.CheckOrientation;
Begin
Orientation.ItemIndex:=Ord(Printer.Orientation);
End;
procedure TChartPreview.BPrintClick(Sender: TObject);
begin
Screen.Cursor:=crHourGlass;
try
if Assigned(PageNavigator1) and (PageNavigator1.PageCount>1) then
PageNavigator1.Print
else
TeePreviewPanel1.Print;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TChartPreview.BCloseClick(Sender: TObject);
begin
Close;
end;
procedure TChartPreview.CBPropClick(Sender: TObject);
begin
if not ChangingProp then
begin
TeePreviewPanel1.Panel.PrintProportional:=CBProp.Checked;
ResetMargins;
end;
end;
procedure TChartPreview.TeePreviewPanel1ChangeMargins(Sender: TObject;
DisableProportional: Boolean; const NewMargins: TRect);
begin
ChangingMargins:=True;
try
UDLeftMa.Position :=NewMargins.Left;
UDRightMa.Position:=NewMargins.Right;
UDTopMa.Position :=NewMargins.Top;
UDBotMa.Position :=NewMargins.Bottom;
if DisableProportional then
begin
TeePreviewPanel1.Panel.PrintProportional:=False;
ChangingProp:=True;
CBProp.Checked:=False;
ChangingProp:=False;
end;
finally
ChangingMargins:=False;
end;
end;
procedure TChartPreview.Navigator1ButtonClicked(Index: TTeeNavigateBtn);
begin
TeePreviewPanel1.Invalidate;
end;
procedure TChartPreview.TrackBar1Change(Sender: TObject);
begin
With TeePreviewPanel1 do
Begin
Panel.PrintResolution:=Resolution.Position-100;
Invalidate;
end;
end;
function TChartPreview.PreviewPanel: TTeePreviewPanel;
begin
result:=TeePreviewPanel1;
end;
procedure TChartPreview.FormDestroy(Sender: TObject);
begin
PrinterSetupDialog1.Free;
PageNavigator1.Free; { 5.02 }
end;
procedure TChartPreview.CheckBox1Click(Sender: TObject);
begin
TeePreviewPanel1.AsBitmap:=CheckBox1.Checked;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -