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

📄 numbering.pas

📁 wptools5 pro 完整源代码 Msword界面的文本编辑器源代码
💻 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 + -