📄 numbering.pas
字号:
unit Numbering;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, WPRTEDefs, WPCTRMemo, WPCTRRich, StdCtrls;
type
TForm1 = class(TForm)
WPRichText1: TWPRichText;
Panel1: TPanel;
Button1: TButton;
Before1: TEdit;
After1: TEdit;
Outline: TButton;
Button2: TButton;
Memo1: TMemo;
Button3: TButton;
CreateLegalOutline: TButton;
GetPartText: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure OutlineClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure WPRichText1DblClick(Sender: TWPCustomRtfEdit; PageNo, X,
Y: Integer; var Ignore: Boolean);
procedure CreateLegalOutlineClick(Sender: TObject);
procedure GetPartTextClick(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var ind : Integer;
begin
ind := 360;
WPRichText1.SelectAll;
WPRichText1.CurrAttr.BeginUpdate;
WPRichText1.CurrAttr.IndentLeft := ind;
WPRichText1.CurrAttr.IndentFirst:= -ind;
WPRichText1.CurrAttr.SetNumberStyle(
Before1.Text, After1.Text, '', wp_1, ind );
WPRichText1.CurrAttr.EndUpdate;
WPRichText1.HideSelection;
end;
procedure TForm1.Button5Click(Sender: TObject);
var ind : Integer;
begin
ind := 360;
WPRichText1.SelectAll;
WPRichText1.SelectedTextAttr.ASet(
WPAT_NumberStyle,
WPRichText1.NumberStyles.AddNumberStyle(
wp_1, // wp_bullet, wp_circle,
// wp_1, wp_lg_i, wp_i, wp_lg_a, wp_a,
Before1.Text,
After1.Text,
'', // Font, important for bullets
ind, // default indent
0, // Fontsize or default
false, // = legal numbering
0, // group, 1 for outline numbering
0 // level in group 1..10
));
end;
procedure TForm1.OutlineClick(Sender: TObject);
var cp : Integer; i,l,m : Integer;
begin
cp := WPRichText1.TextCursor.DropMarker;
// Remove numbers and indent
WPRichText1.SelectAll;
WPRichText1.CurrAttr.BeginUpdate;
WPRichText1.CurrAttr.NumberStyle := 0;
WPRichText1.CurrAttr.IndentLeft := 0;
WPRichText1.CurrAttr.EndUpdate;
WPRichText1.HideSelection;
i := 0;
l := 1;
m := 1;
// Move down and apply Outline Mode
WPRichText1.CPPosition := 0;
repeat
WPRichText1.CurrAttr.BeginUpdate;
WPRichText1.CurrAttr.OutlineLevel := l;
WPRichText1.CurrAttr.IndentLeft := l * 360;
WPRichText1.CurrAttr.IndentFirst := -360;
WPRichText1.CurrAttr.EndUpdate;
inc(i);
if i=3 then
begin
l := l+m;
if (l=4) or (l=1) then m := -m;
i := 0;
end;
until not WPRichText1.CPMoveDownPar;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Text := WPRichText1.AsString;
WPRichText1.SaveToFile('c:\a_.rtf');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
WPRichText1.AsString := Memo1.Text;
end;
procedure TForm1.WPRichText1DblClick(Sender: TWPCustomRtfEdit; PageNo, X,
Y: Integer; var Ignore: Boolean);
begin
ShowMessage( Sender.ActiveParagraph.AGetWPSS(true, true, true ));
Ignore := TRUE;
end;
procedure TForm1.CreateLegalOutlineClick(Sender: TObject);
var
i: Integer;
begin
if WPRichText1 <> nil then
for i := 1 to 9 do
with WPRichText1.NumberStyles.AddOutlineStyle(1, i) do
begin
Style := wp_1;
TextB := '';
TextA := '.';
Font := '';
Indent := 360 * i;
UsePrev := TRUE;
end;
WPRichText1.Refresh;
end;
procedure TForm1.Button6Click(Sender: TObject);
var sty : TWPRTFNumberingStyle;
begin
// Locate level 1 in default outline group
sty := WPRichText1.NumberStyles.FindNumberStyle(-1,1);
// and assign the ID to the current paragraph or the selected
// paragraphs
WPRichText1.ASet(WPAT_NumberSTYLE, sty.ID);
WPRichText1.ASet(WPAT_NumberLEVEL, 1);
WPRichText1.Refresh;
end;
procedure TForm1.GetPartTextClick(Sender: TObject);
begin
ShowMessage( WPRichText1.ActiveParagraph.GetText(false, true) );
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
with WPRichText1.Finder do
begin
ToStart;
EndAtSpace := TRUE;
while Next('http://*E') do
begin
SelectText;
WPRichText1.InputHyperlink(FoundText);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -