📄 uprviewfrm.pas
字号:
unit uPrviewfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RVScroll, CRVPP, RVPP, TBXStatusBars, TB2Toolbar, TBX, TB2Dock,
TB2ToolWindow, SpTBXItem, TB2Item, TB2ExtItems, TBXExtItems, ImgList;
type
TPreviewfrm = class(TForm)
TBXToolWindow1: TTBXToolWindow;
Pv: TRVPrintPreview;
TBXDock1: TTBXDock;
TBXToolbar1: TTBXToolbar;
SBar: TTBXStatusBar;
cmb: TTBXComboBoxItem;
SpTBXItem1: TSpTBXItem;
SpTBXItem2: TSpTBXItem;
SpTBXItem3: TSpTBXItem;
SpTBXItem4: TSpTBXItem;
SpTBXSeparatorItem1: TSpTBXSeparatorItem;
SpTBXSeparatorItem2: TSpTBXSeparatorItem;
SpTBXItem5: TSpTBXItem;
ImageList1: TImageList;
SpTBXSeparatorItem3: TSpTBXSeparatorItem;
SpTBXItem6: TSpTBXItem;
SpTBXItem7: TSpTBXItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpTBXItem1Click(Sender: TObject);
procedure SpTBXItem2Click(Sender: TObject);
procedure SpTBXItem3Click(Sender: TObject);
procedure SpTBXItem4Click(Sender: TObject);
procedure SpTBXItem5Click(Sender: TObject);
procedure PvZoomChanged(Sender: TObject);
procedure cmbItemClick(Sender: TObject);
procedure cmbAcceptText(Sender: TObject; var NewText: String;
var Accept: Boolean);
procedure SpTBXItem6Click(Sender: TObject);
procedure SpTBXItem7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function UpdateZoom(AText:string):Boolean;
end;
implementation
uses uTxtfrm;
{$R *.dfm}
procedure TPreviewfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure TPreviewfrm.SpTBXItem1Click(Sender: TObject);
begin
Pv.First;
SBar.Panels[0].Caption:=Format('第%d页/共%d页', [Pv.PageNo,Pv.RVPrint.PagesCount]);
end;
procedure TPreviewfrm.SpTBXItem2Click(Sender: TObject);
begin
Pv.Prev;
SBar.Panels[0].Caption:=Format('第%d页/共%d页', [Pv.PageNo,Pv.RVPrint.PagesCount]);
end;
procedure TPreviewfrm.SpTBXItem3Click(Sender: TObject);
begin
Pv.Next;
SBar.Panels[0].Caption:=Format('第%d页/共%d页', [Pv.PageNo,Pv.RVPrint.PagesCount]);
end;
procedure TPreviewfrm.SpTBXItem4Click(Sender: TObject);
begin
Pv.Last;
SBar.Panels[0].Caption:=Format('第%d页/共%d页', [Pv.PageNo,Pv.RVPrint.PagesCount]);
end;
procedure TPreviewfrm.SpTBXItem5Click(Sender: TObject);
begin
close;
end;
function TPreviewfrm.UpdateZoom(AText:string):Boolean;
var
s: String;
zoom: Integer;
begin
result:=true;
s := Trim(AText);
if s='页面宽度' then begin
pv.ZoomMode := rvzmPageWidth;
exit;
end;
if s='整页' then begin
pv.ZoomMode := rvzmFullPage;
exit;
end;
if (s<>'') and (s[Length(s)]='%') then
s := Copy(s,1,Length(s)-1);
zoom := StrToIntDef(s,0);
if (zoom<10) or (zoom>500) then
begin
result:=false;
MessageBox(handle,'请在10和500之间输入。','提示',MB_OK or MB_ICONSTOP);
end
else
pv.SetZoom(zoom);
end;
procedure TPreviewfrm.PvZoomChanged(Sender: TObject);
begin
cmb.Text := IntToStr(pv.ZoomPercent)+'%';
end;
procedure TPreviewfrm.cmbItemClick(Sender: TObject);
begin
UpdateZoom(cmb.Text);
end;
procedure TPreviewfrm.cmbAcceptText(Sender: TObject; var NewText: String;
var Accept: Boolean);
begin
Accept:=UpdateZoom(NewText);
if Accept then
begin
if NewText[Length(NewText)]<>'%' then
NewText:=NewText+'%';
end;
end;
procedure TPreviewfrm.SpTBXItem6Click(Sender: TObject);
begin
TTxtFrm(Owner).Print;
end;
procedure TPreviewfrm.SpTBXItem7Click(Sender: TObject);
begin
TTxtFrm(Owner).PageSetup;
TTxtFrm(Owner).RVPrint1.FormatPages(rvdoALL);
Pv.UpdateView;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -