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

📄 adwptdemou.pas

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

// Addict Spell: www.addictivesoftware.com
// WPTools: www.wptools.de

interface

uses
     Forms, Windows, Graphics, Classes, ad3ThesaurusBase, ad3Thesaurus, ad3SpellBase, ad3Spell,
     WPPrvFrm, WPUtil, WpPagPrp, Menus, StdCtrls, Controls, Buttons, ExtCtrls,
     WPRuler, WPCTRRich, WPRTEDefs, WPCTRMemo, WPRTEPaint, WPTbar,
  wpDefActions, Dialogs, ActnList;

type
     TWPAddictDemo = class (TForm)
          WPToolBar1: TWPToolBar;
          WPPagePropDlg1: TWPPagePropDlg;
          WPPreviewDlg1: TWPPreviewDlg;
          Panel1: TPanel;
          SpellBtn: TSpeedButton;
          ThesaurusBtn: TSpeedButton;
          SetupBtn: TSpeedButton;
          ToggleLiveSpell: TCheckBox;
          AddictSpell: TAddictSpell3;
          AddictThesaurus: TThesaurus3;
    WPPreview1: TWPPreview;
    Panel2: TPanel;
    WPRichText1: TWPRichText;
    WPRuler1: TWPRuler;
    Splitter1: TSplitter;
    Label1: TLabel;
    Image1: TImage;
    WithWaterMark: TCheckBox;
    WPVertRuler1: TWPVertRuler;
    WPDefaultActions1: TWPDefaultActions;
    ActionList1: TActionList;
    AC_SpellProp: TAction;
          procedure O1Click (Sender: TObject);
          procedure Save1Click (Sender: TObject);
          procedure PageSetup1Click (Sender: TObject);
          procedure Preview1Click (Sender: TObject);
          procedure Print1Click (Sender: TObject);
          procedure Close1Click (Sender: TObject);
          procedure FormCloseQuery (Sender: TObject; var CanClose: Boolean);
          procedure FormCreate (Sender: TObject);
          procedure ToggleLiveSpellClick (Sender: TObject);
          procedure SpellBtnClick (Sender: TObject);
          procedure ThesaurusBtnClick (Sender: TObject);
          procedure SetupBtnClick (Sender: TObject);
          procedure WPRichText1HyperLinkEvent (Sender: TObject; text,
               stamp: string; LineNumber: Integer);
          procedure AddictSpellConfigChanged (Sender: TObject);
    procedure WPRichText1ChangeCursorPos(Sender: TObject);
    procedure WPPreview1Click(Sender: TWPCustomRtfEdit; PageNo, X,
      Y: Integer; var Ignore: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure WPRichText1PaintWatermark(Sender: TObject;
      RTFEngine: TWPRTFEnginePaint; toCanvas: TCanvas; PageRect: TRect;
      PaintPageNr, RTFPageNr: Integer; WaterMarkRef: TObject; XRes,
      YRes: Integer; CurrentZoom: Single; PaintMode: TWPPaintModes);
    procedure WithWaterMarkClick(Sender: TObject);
    procedure WPDefaultActions1Init(ActionModule: TWPDefAct);
    procedure WPDefaultActions1Info1(Sender: TObject);
    procedure WPDefaultActions1Info2(Sender: TObject);
    procedure WPDefaultActions1Close(Sender: TObject;
      ActionModule: TWPDefAct; WPRichText: TWPCustomRichText);
    procedure WPDefaultActions1ShowThumbnails(Sender: TObject;
      ActionModule: TWPDefAct; WPRichText: TWPCustomRichText);
    procedure AC_SpellPropExecute(Sender: TObject);
     private
     public
     end;

var
     WPAddictDemo: TWPAddictDemo;
implementation

{$R *.DFM}

//******************************************************************************
// Addict specific integration code
//******************************************************************************

uses
     ShellAPI, SysUtils,
     ad3Configuration,
     WPTAddict;

procedure TWPAddictDemo.FormCreate (Sender: TObject);
begin
     WPAddict.AddictSpell := AddictSpell;
     WPAddict.AddictThesaurus := AddictThesaurus;

     WPAddict.AddLiveControl (WPRichText1);

     //WPAddict.LiveMenuOptions := WPAddict.LiveMenuOptions - [spAdd];

     // For WPTools: Change word delimiters
	//WPWordDelimiterArray [#39] := FALSE;
     //WPWordDelimiterArray ['_'] := FALSE;

     WPRichText1.CPPosition := 0;
end;

procedure TWPAddictDemo.ToggleLiveSpellClick (Sender: TObject);
begin
     if (ToggleLiveSpell.Checked) then
          AddictSpell.Configuration.SpellOptions := AddictSpell.Configuration.SpellOptions + [soLiveSpelling]
     else
          AddictSpell.Configuration.SpellOptions := AddictSpell.Configuration.SpellOptions - [soLiveSpelling];
end;

procedure TWPAddictDemo.SpellBtnClick (Sender: TObject);
begin
     CheckWPTools (AddictSpell, WPRichText1, ctSmart);
end;

procedure TWPAddictDemo.ThesaurusBtnClick (Sender: TObject);
begin
     LookupWPTools (AddictThesaurus, WPRichText1);
end;

procedure TWPAddictDemo.SetupBtnClick (Sender: TObject);
begin
     AddictSpell.Setup;
end;

procedure TWPAddictDemo.AddictSpellConfigChanged (Sender: TObject);
begin
     ToggleLiveSpell.Checked := (soLiveSpelling in AddictSpell.Configuration.SpellOptions);
end;

//******************************************************************************
// Some code to make a fully functional editor....
// WPTools makes this quite easy...
//******************************************************************************

procedure TWPAddictDemo.O1Click (Sender: TObject);
begin
     WPRichText1.Load;
end;

procedure TWPAddictDemo.Save1Click (Sender: TObject);
begin
     WPRichText1.Save;
end;

procedure TWPAddictDemo.PageSetup1Click (Sender: TObject);
begin
     WPPagePropDlg1.Execute;
end;

procedure TWPAddictDemo.Preview1Click (Sender: TObject);
begin
     WPPreviewDlg1.Execute;
end;

procedure TWPAddictDemo.Print1Click (Sender: TObject);
begin
     WPRichText1.Print;
end;

procedure TWPAddictDemo.Close1Click (Sender: TObject);
begin
     Close;
end;

procedure TWPAddictDemo.FormCloseQuery (Sender: TObject; var CanClose: Boolean);
begin
     CanClose := WPRichText1.CanClose;
end;

function ExecuteFile (const FileName, Params, DefaultDir: string; ShowCmd: Integer): THandle;
var
     zFileName, zParams, zDir: array [0..79] of Char;
begin
     Result := ShellExecute (Application.MainForm.Handle, nil,
          StrPCopy (zFileName, FileName),
          StrPCopy (zParams, Params),
          StrPCopy (zDir, DefaultDir),
          ShowCmd);
end;

procedure TWPAddictDemo.WPRichText1HyperLinkEvent (Sender: TObject; text,
     stamp: string; LineNumber: Integer);
begin
     ExecuteFile (Text, '', '', SW_SHOWNORMAL)
end;

procedure TWPAddictDemo.WPRichText1ChangeCursorPos(Sender: TObject);
begin
  Label1.Caption  := Format('Page %d Line %d Column %d',
    [ WPRichText1.CPPage+1, WPRichText1.CPLineNr+1, WPRichText1.CPColNr+1  ]);

  WPPreview1.PageNumber := WPRichText1.CPPage;
  WPPreview1.Memo.SelectedPage := WPPreview1.PageNumber;
end;

procedure TWPAddictDemo.WPPreview1Click(Sender: TWPCustomRtfEdit; PageNo, X,
  Y: Integer; var Ignore: Boolean);
begin
  WPRichText1.PageNumber := WPPreview1.MousePage;
  Ignore := TRUE;
end;

procedure TWPAddictDemo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   WPPreview1.WPRichText := nil;
end;

procedure TWPAddictDemo.WPRichText1PaintWatermark(Sender: TObject;
  RTFEngine: TWPRTFEnginePaint; toCanvas: TCanvas; PageRect: TRect;
  PaintPageNr, RTFPageNr: Integer; WaterMarkRef: TObject; XRes,
  YRes: Integer; CurrentZoom: Single; PaintMode: TWPPaintModes);
begin
  if WithWaterMark.Checked and (Image1.Picture.Graphic<>nil) then
     toCanvas.StretchDraw( PageRect, Image1.Picture.Graphic );
end;

procedure TWPAddictDemo.WithWaterMarkClick(Sender: TObject);
begin
  WPRichText1.Repaint;
end;

procedure TWPAddictDemo.WPDefaultActions1Init(ActionModule: TWPDefAct);
var item : TMenuItem;
begin
  ActionModule.Info1.Caption := 'About WPTools';
  ActionModule.Info2.Caption := 'About Addict Spell';

  ActionModule.ExtrasMenu.Visible := TRUE;

  item := TMenuItem.Create( ActionModule.ExtrasMenu );
  ActionModule.ExtrasMenu.Add(item);
  item.Action := AC_SpellProp;
end;

procedure TWPAddictDemo.AC_SpellPropExecute(Sender: TObject);
begin
  AddictSpell.Setup;
end;

procedure TWPAddictDemo.WPDefaultActions1Info1(Sender: TObject);
begin
   ShowMessage('WPTools 5 by ' +
     #13 + 'WPCubed GmbH http://www.wpcubed.com'); 
end;

procedure TWPAddictDemo.WPDefaultActions1Info2(Sender: TObject);
begin
   ShowMessage('Addict Spell by ' +
     #13 + 'Addictive Software http://www.addictivesoftware.com');
end;

procedure TWPAddictDemo.WPDefaultActions1Close(Sender: TObject;
  ActionModule: TWPDefAct; WPRichText: TWPCustomRichText);
begin
 if WPRichText1.CanClose then Close;
end;

var LastPRW : Integer = 132;

procedure TWPAddictDemo.WPDefaultActions1ShowThumbnails(Sender: TObject;
  ActionModule: TWPDefAct; WPRichText: TWPCustomRichText);
begin
  if WPPreview1.Width>0 then
  begin
    LastPRW := WPPreview1.Width;
    WPPreview1.Width := 0
  end
  else WPPreview1.Width := LastPRW;
end;



end.

⌨️ 快捷键说明

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