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

📄 rtfvar1.pas

📁 wptools5 pro 完整源代码 Msword界面的文本编辑器源代码
💻 PAS
字号:
unit RTFVar1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, WPRTEPaint, WPRTEDefs, WPCTRMemo, WPCTRRich, ExtDlgs;

type
  TWPSaveRTFVariables = class(TForm)
    Source: TWPRichText;
    Panel1: TPanel;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Data2: TEdit;
    RTFText: TMemo;
    Panel2: TPanel;
    Button2: TButton;
    Dest: TWPRichText;
    Panel3: TPanel;
    DataLab1: TLabel;
    DataLab2: TLabel;
    Label3: TLabel;
    FormatStr: TComboBox;
    Data1: TMemo;
    Update_Background_Image: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Update_Background_ImageClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure SourcePaintWatermark(Sender: TObject;
      RTFEngine: TWPRTFEnginePaint; toCanvas: TCanvas; PageRect: TRect;
      PaintPageNr, RTFPageNr: Integer; WaterMarkRef: TObject; XRes,
      YRes: Integer; CurrentZoom: Single; PaintMode: TWPPaintModes);
    procedure DestPaintWatermark(Sender: TObject;
      RTFEngine: TWPRTFEnginePaint; toCanvas: TCanvas; PageRect: TRect;
      PaintPageNr, RTFPageNr: Integer; WaterMarkRef: TObject; XRes,
      YRes: Integer; CurrentZoom: Single; PaintMode: TWPPaintModes);
  private
    { Private-Deklarationen }
  public
    back1, back2 : TImage;
    procedure UpdateDestWatermark;
  end;

var
  WPSaveRTFVariables: TWPSaveRTFVariables;

implementation

{$R *.dfm}

procedure TWPSaveRTFVariables.Button1Click(Sender: TObject);
var element :  TWPRTFExtraDataItem;
    i : Integer;
begin
  Source.RTFVariables.AddString('Data1', Data1.Text, false);
  Source.RTFVariables.AddString('Data2', Data2.Text, false);  

  for i:=0 to Source.RTFVariables.Count-1 do
  begin
    Source.RTFVariables[i].Options := [wpxSaveToRTF, wpxLoadFromRTF];
  end;
  RTFText.Text :=  Source.AsANSIString(FormatStr.Text);
end;

procedure TWPSaveRTFVariables.Button2Click(Sender: TObject);
begin
  //not required: Dest.RTFVariables.Clear;
  Dest.AsString := RTFText.Text;
  DataLab1.Caption := Dest.RTFVariables.Strings['Data1'];
  DataLab2.Caption := Dest.RTFVariables.Strings['Data2'];
  Panel3.Invalidate;
  UpdateDestWatermark;
end;

procedure TWPSaveRTFVariables.FormDestroy(Sender: TObject);
begin
 back1.Free;
 back2.Free;
end;

procedure TWPSaveRTFVariables.Update_Background_ImageClick(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
     if back1=nil then back1 := TImage.Create(nil);
     try
     back1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
     Source.RTFVariables.Strings['BACKGROUNDIMAGE'] :=
       OpenPictureDialog1.FileName;
     Source.Repaint;
     except
       FreeAndNil(back1);
     end;
  end
  else
  begin
     FreeAndNil(back1);
     Source.RTFVariables.Strings['BACKGROUNDIMAGE'] := '';
  end;
end;   

procedure TWPSaveRTFVariables.SourcePaintWatermark(Sender: TObject;
  RTFEngine: TWPRTFEnginePaint; toCanvas: TCanvas; PageRect: TRect;
  PaintPageNr, RTFPageNr: Integer; WaterMarkRef: TObject; XRes,
  YRes: Integer; CurrentZoom: Single; PaintMode: TWPPaintModes);
begin
 if (back1<>nil) and (back1.Picture.Graphic<>nil) then
       WPPrintTiledBackground(toCanvas, PageRect, back1.Picture.Graphic,
         1); // use: 1/Source.Memo.CurrentZooming to avoid zoom
end;

procedure TWPSaveRTFVariables.UpdateDestWatermark;
var
  f : String;
begin
  f :=  Dest.RTFVariables.Strings['BACKGROUNDIMAGE'];
  if FileExists(f) then
  begin
   if back2=nil then back2 := TImage.Create(nil);
   try
     back2.Picture.LoadFromFile(f);
   except
     FreeAndNil(back2);
   end;
  end
  else FreeAndNil(back2);
end;

procedure TWPSaveRTFVariables.DestPaintWatermark(Sender: TObject;
  RTFEngine: TWPRTFEnginePaint; toCanvas: TCanvas; PageRect: TRect;
  PaintPageNr, RTFPageNr: Integer; WaterMarkRef: TObject; XRes,
  YRes: Integer; CurrentZoom: Single; PaintMode: TWPPaintModes);
begin
 if (back2<>nil) and (back2.Picture.Graphic<>nil) then
       WPPrintTiledBackground(toCanvas, PageRect, back2.Picture.Graphic,
         1); // use: 1/Dest.Memo.CurrentZooming to avoid zoom
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -