📄 adwptdemou.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 + -