⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uprviewfrm.pas

📁 一个基于不需引擎的文件管理系统,使用了许多界面比较好的控件
💻 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 + -