PreviewFrm.pas
上传用户:daoqigc
上传日期:2021-04-20
资源大小:2795k
文件大小:3k
源码类别:

RichEdit

开发平台:

Delphi

  1. unit PreviewFrm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, RVScroll, CRVPP, RVPP, ExtCtrls;
  6. type
  7.   TfrmPreview = class(TForm)
  8.     Panel1: TPanel;
  9.     rvpp: TRVPrintPreview;
  10.     cmb: TComboBox;
  11.     Button1: TButton;
  12.     Button2: TButton;
  13.     Button3: TButton;
  14.     Button4: TButton;
  15.     Label1: TLabel;
  16.     procedure Button1Click(Sender: TObject);
  17.     procedure Button2Click(Sender: TObject);
  18.     procedure Button3Click(Sender: TObject);
  19.     procedure Button4Click(Sender: TObject);
  20.     procedure cmbExit(Sender: TObject);
  21.     procedure cmbKeyDown(Sender: TObject; var Key: Word;
  22.       Shift: TShiftState);
  23.     procedure rvppZoomChanged(Sender: TObject);
  24.   private
  25.     { Private declarations }
  26.     procedure UpdateZoom; 
  27.   public
  28.     { Public declarations }
  29.   end;
  30. var
  31.   frmPreview: TfrmPreview;
  32. implementation
  33. {$R *.DFM}
  34. {-----------------------------------------------------------------------}
  35. procedure TfrmPreview.Button1Click(Sender: TObject);
  36. begin
  37.   rvpp.First;
  38.   Label1.Caption :=Format('%d of %d', [rvpp.PageNo, rvpp.RVPrint.PagesCount]);
  39. end;
  40. {-----------------------------------------------------------------------}
  41. procedure TfrmPreview.Button2Click(Sender: TObject);
  42. begin
  43.   rvpp.Prev;
  44.   Label1.Caption :=Format('%d of %d', [rvpp.PageNo, rvpp.RVPrint.PagesCount]);
  45. end;
  46. {-----------------------------------------------------------------------}
  47. procedure TfrmPreview.Button3Click(Sender: TObject);
  48. begin
  49.   rvpp.Next;
  50.   Label1.Caption :=Format('%d of %d', [rvpp.PageNo, rvpp.RVPrint.PagesCount]);
  51. end;
  52. {-----------------------------------------------------------------------}
  53. procedure TfrmPreview.Button4Click(Sender: TObject);
  54. begin
  55.   rvpp.Last;
  56.   Label1.Caption :=Format('%d of %d', [rvpp.PageNo, rvpp.RVPrint.PagesCount]);
  57. end;
  58. {-----------------------------------------------------------------------}
  59. procedure TfrmPreview.cmbExit(Sender: TObject);
  60. begin
  61.   UpdateZoom;
  62. end;
  63. {-----------------------------------------------------------------------}
  64. procedure TfrmPreview.cmbKeyDown(Sender: TObject; var Key: Word;
  65.   Shift: TShiftState);
  66. begin
  67.   if Key=VK_RETURN then begin
  68.     UpdateZoom;
  69.     Key := 0;
  70.   end;
  71. end;
  72. {-----------------------------------------------------------------------}
  73. procedure TfrmPreview.UpdateZoom;
  74. var s: String;
  75.     zoom: Integer;
  76. begin
  77.   s := Trim(cmb.Text);
  78.   if s='Page width' then begin
  79.     rvpp.ZoomMode := rvzmPageWidth;
  80.     exit;
  81.   end;
  82.   if s='Full page' then begin
  83.     rvpp.ZoomMode := rvzmFullPage;
  84.     exit;
  85.   end;
  86.   if (s<>'') and (s[Length(s)]='%') then
  87.     s := Copy(s,1,Length(s)-1);
  88.   zoom := StrToIntDef(s,0);
  89.   if (zoom<10) or (zoom>500) then
  90.     Application.MessageBox('Please enter number from 10 to 500','Scale',MB_OK or MB_ICONSTOP)
  91.   else
  92.     rvpp.SetZoom(zoom);
  93. end;
  94. {-----------------------------------------------------------------------}
  95. procedure TfrmPreview.rvppZoomChanged(Sender: TObject);
  96. begin
  97.   cmb.Text := IntToStr(rvpp.ZoomPercent)+'%';
  98. end;
  99. end.