📄 rm_prvdlg.pas
字号:
begin
FViewer.AutoScale := btnAutoScale.Down;
LastAutoScale := btnAutoScale.Down;
end;
procedure TRMPreviewForm.BtnExitClick(Sender: TObject);
begin
if FDoc = nil then
Close
else
begin
if TRMReport(FDoc).ModalPreview and (not TRMReport(FDoc).MDIPreview) then
ModalResult := mrOk
else
Close;
end;
end;
procedure TRMPreviewForm.itmPrintCurrentPageClick(Sender: TObject);
begin
FViewer.PrintCurrentPage;
end;
procedure TRMPreviewForm.FormShow(Sender: TObject);
begin
if FormStyle <> fsMDIChild then
begin
RMRestoreFormPosition(Self);
RMRestoreToolbars([ToolbarStand]);
end;
ToolbarStand.Visible := True;
end;
procedure TRMPreviewForm.OnStatusChange(Sender: TObject);
begin
case FViewer.ZoomMode of
mdPageWidth: btnPageWidth.Down := TRUE;
mdOnePage: btnOnePage.Down := TRUE;
else
if Round(FViewer.Zoom) = 100 then
btn100.Down := TRUE
else
begin
btn100.Down := FALSE;
btnPageWidth.Down := FALSE;
btnOnePage.Down := FALSE;
end;
end;
if btnPageWidth.Down then
cmbZoom.ItemIndex := 7
else if btnOnePage.Down then
cmbZoom.ItemIndex := 8
else if btn100.Down then
cmbZoom.ItemIndex := 2
else
cmbZoom.ItemIndex := cmbZoom.Items.IndexOf(IntToStr(Round(FViewer.Zoom)) + '%');
end;
procedure TRMPreviewForm.OnPageChanged(Sender: TObject);
begin
edtPageNo.Text := IntToStr(FViewer.CurPage);
end;
procedure TRMPreviewForm.btnDesignClick(Sender: TObject);
begin
FViewer.DesignReport;
end;
procedure TRMPreviewForm.FormCreate(Sender: TObject);
procedure _CreateToolbar;
begin
Dock971 := TRMDock.Create(Self);
with Dock971 do
begin
Parent := Self;
FixAlign := True;
Name := 'Dock971';
end;
Dock972 := TRMDock.Create(Self);
with Dock972 do
begin
Parent := Self;
FixAlign := True;
Position := dpBottom;
Name := 'Dock972';
end;
ToolbarStand := TRMToolbar.Create(Dock971);
with ToolbarStand do
begin
Parent := Dock971;
CloseButton := False;
DockPos := 0;
Name := 'ToolbarPreviewStand';
end;
ToolbarStand.BeginUpdate;
cmbZoom := TComboBox.Create(ToolbarStand);
with cmbZoom do
begin
Parent := ToolbarStand;
DropDownCount := 12;
Width := 84;
Items.Add('200%');
Items.Add('150%');
Items.Add('100%');
Items.Add('75%');
Items.Add('50%');
Items.Add('25%');
Items.Add('10%');
Items.Add(RMLoadStr(rmRes + 1857));
Items.Add(RMLoadStr(rmRes + 1858));
Items.Add(RMLoadStr(rmRes + 1859));
OnClick := CmbZoomClick;
OnKeyPress := CmbZoomKeyPress;
end;
tbLine := TRMToolbarSep.Create(ToolbarStand);
with tbLine do
begin
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(tbLine);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnAutoScale := TRMToolbarButton.Create(ToolbarStand);
with btnAutoScale do
begin
AllowAllUp := True;
GroupIndex := 1;
Down := True;
ImageIndex := 0;
Images := ImageList1;
OnClick := btnAutoScaleClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnAutoScale);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnOnePage := TRMToolbarButton.Create(ToolbarStand);
with btnOnePage do
begin
AllowAllUp := True;
GroupIndex := 2;
ImageIndex := 1;
Images := ImageList1;
OnClick := btnOnePageClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnOnePage);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btn100 := TRMToolbarButton.Create(ToolbarStand);
with btn100 do
begin
Hint := '100%';
AllowAllUp := True;
GroupIndex := 2;
ImageIndex := 2;
Images := ImageList1;
OnClick := btn100Click;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btn100);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnPageWidth := TRMToolbarButton.Create(ToolbarStand);
with btnPageWidth do
begin
AllowAllUp := True;
GroupIndex := 2;
ImageIndex := 3;
Images := ImageList1;
OnClick := btnPageWidthClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnPageWidth);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
ToolbarSep974 := TRMToolbarSep.Create(ToolbarStand);
with ToolbarSep974 do
begin
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(ToolbarSep974);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnTop := TRMToolbarButton.Create(ToolbarStand);
with btnTop do
begin
ImageIndex := 4;
Images := ImageList1;
OnClick := btnTopClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnTop);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnPrev := TRMToolbarButton.Create(ToolbarStand);
with btnPrev do
begin
ImageIndex := 5;
Images := ImageList1;
OnClick := btnPrevClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnPrev);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
edtPageNo := TRMEdit.Create(ToolbarStand);
with edtPageNo do
begin
Width := 40;
OnKeyPress := edtPageNoKeyPress;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(edtPageNo);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnNext := TRMToolbarButton.Create(ToolbarStand);
with btnNext do
begin
ImageIndex := 6;
Images := ImageList1;
OnClick := btnNextClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnNext);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnLast := TRMToolbarButton.Create(ToolbarStand);
with btnLast do
begin
ImageIndex := 7;
Images := ImageList1;
OnClick := btnLastClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnLast);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
ToolbarSep972 := TRMToolbarSep.Create(ToolbarStand);
with ToolbarSep972 do
begin
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(ToolbarSep972);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnFind := TRMToolbarButton.Create(ToolbarStand);
with btnFind do
begin
ImageIndex := 8;
Images := ImageList1;
OnClick := btnFindClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnFind);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
ToolbarSep975 := TRMToolbarSep.Create(ToolbarStand);
with ToolbarSep975 do
begin
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(ToolbarSep975);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnOpen := TRMToolbarButton.Create(ToolbarStand);
with btnOpen do
begin
ImageIndex := 9;
Images := ImageList1;
OnClick := btnOpenClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnOpen);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnSave := TRMToolbarButton.Create(ToolbarStand);
with btnSave do
begin
ImageIndex := 10;
Images := ImageList1;
OnClick := btnSaveClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnSave);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnSaveToXLS := TRMToolbarButton.Create(ToolbarStand);
with btnSaveToXLS do
begin
ImageIndex := 15;
Images := ImageList1;
OnClick := btnSaveToXLSClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnSaveToXLS);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnPrint := TRMToolbarButton.Create(ToolbarStand);
with btnPrint do
begin
ImageIndex := 11;
Images := ImageList1;
OnClick := btnPrintClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnPrint);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnPageSetup := TRMToolbarButton.Create(ToolbarStand);
with btnPageSetup do
begin
ImageIndex := 12;
Images := ImageList1;
OnClick := btnPageSetupClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnPageSetup);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
ToolbarSep973 := TRMToolbarSep.Create(ToolbarStand);
with ToolbarSep973 do
begin
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(ToolbarSep973);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnDesign := TRMToolbarButton.Create(ToolbarStand);
with btnDesign do
begin
ImageIndex := 13;
Images := ImageList1;
OnClick := btnDesignClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnDesign);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
ToolbarSep971 := TRMToolbarSep.Create(ToolbarStand);
with ToolbarSep971 do
begin
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(ToolbarSep971);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
btnExit := TRMToolbarButton.Create(ToolbarStand);
with btnExit do
begin
ImageIndex := 14;
Images := ImageList1;
OnClick := BtnExitClick;
{$IFDEF USE_TB2k}
ToolbarStand.Items.Add(btnExit);
{$ELSE}
Parent := ToolbarStand;
{$ENDIF}
end;
ToolbarStand.EndUpdate;
end;
begin
_CreateToolbar;
FViewer := TRMPreview.Create(Self);
with FViewer do
begin
Parent := Self;
Align := alClient;
PopupMenu := ProcMenu;
AutoScale := False;
ParentForm := Self;
end;
FViewer.OnStatusChange := OnStatusChange;
FViewer.OnPageChanged := OnPageChanged;
Localize;
end;
procedure TRMPreviewForm.CmbZoomKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) then
begin
try
FViewer.Zoom := StrToIntDef(cmbZoom.Text, 100);
except
end;
end;
end;
procedure TRMPreviewForm.CmbZoomClick(Sender: TObject);
begin
case cmbZoom.ItemIndex of
0: FViewer.Zoom := 200;
1: FViewer.Zoom := 150;
2: FViewer.Zoom := 100;
3: FViewer.Zoom := 75;
4: FViewer.Zoom := 50;
5: FViewer.Zoom := 25;
6: FViewer.Zoom := 10;
7: FViewer.PageWidth;
8: FViewer.OnePage;
9: FViewer.TwoPages;
end;
end;
procedure TRMPreviewForm.Append1Click(Sender: TObject);
begin
FViewer.AddPage;
FViewer.Last;
end;
procedure TRMPreviewForm.InsertBefore1Click(Sender: TObject);
begin
FViewer.InsertPageBefore;
end;
procedure TRMPreviewForm.InsertAfter1Click(Sender: TObject);
begin
FViewer.InsertPageAfter;
FViewer.CurPage := FViewer.CurPage + 1;
end;
procedure TRMPreviewForm.edtPageNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
try
FViewer.CurPage := StrToInt(edtPageNo.Text);
except;
edtPageNo.Text := IntToStr(FViewer.CurPage);
end;
end;
end;
procedure TRMPreviewForm.btnSaveToXLSClick(Sender: TObject); // 保存到xls文件
begin
FXLSExport := TRMXLSExport.Create(nil);
try
FXLSExport.ShowDialog := True;
if FXLSExport.ShowModal = mrOK then
begin
if FXLSExport.ExportPages = 'CURPAGE' then
FXLSExport.ExportPages := IntToStr(FViewer.CurPage);
FXLSExport.ShowDialog := False;
FViewer.ExportToFile(FXLSExport, FXLSExport.ExportFileName);
end;
finally
FXLSExport.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -