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

📄 dynasignu1.pas

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

interface

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

type
  TWPDynRTFData = class(TForm)
    DynDataList: TListBox;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Splitter1: TSplitter;
    Splitter2: TSplitter;
    WPToolBar1: TWPToolBar;
    WPRuler1: TWPRuler;
    WPRichText1: TWPRichText;
    PaintBox1: TPaintBox;
    PaintBox2: TPaintBox;
    procedure FormCreate(Sender: TObject);
    procedure WPRichText1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure DynDataListDblClick(Sender: TObject);
    procedure Panel4DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure Panel4DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure Panel3DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure PaintBox1Paint(Sender: TObject);
    procedure PaintBox2Paint(Sender: TObject);
    procedure WPRichText1Change(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    paint1, paint2 : TWPPaintEngine;
  end;

var
  WPDynRTFData: TWPDynRTFData;

implementation

{$R *.dfm}

procedure TWPDynRTFData.FormCreate(Sender: TObject);
var i : Integer;
    element : TWPRTFDataCollection;
begin
   DynDataList.Items.BeginUpdate;
   for i:=1 to 20 do
   begin
     element := TWPRTFDataCollection.Create(TWPRTFDataBlock);
     element.MakeRTFProps;
     element.Get(wpIsBody,wpraOnAllPages).RtfText.AsString :=
       'This is demo text number <b>' + IntToStr(i) + '</b>&#160;';
     DynDataList.Items.AddObject(
        'Text ' + IntToStr(i),
        element );
   end;
   DynDataList.Items.EndUpdate;
   paint1 := TWPPaintEngine.Create(Self);
   Panel4.DoubleBuffered := TRUE;
   paint2 := TWPPaintEngine.Create(Self);
   Panel3.DoubleBuffered := TRUE;
end;

procedure TWPDynRTFData.FormDestroy(Sender: TObject);
var i : Integer;
begin
  paint1.RTFData := nil;
  paint2.RTFData := nil;
  WPRichText1.RemoveRTFData;
  for i:=0 to DynDataList.Items.Count-1 do
     DynDataList.Items.Objects[i].Free;
  paint1.Free;
  paint2.Free;
end;

procedure TWPDynRTFData.WPRichText1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin

end;

// Double click to edit !
procedure TWPDynRTFData.DynDataListDblClick(Sender: TObject);
begin
     // Remove link to this RTF Data Object
     WPRichText1.RemoveRTFData;
     // And add link to this one
     WPRichText1.SetRTFData(
       DynDataList.Items.Objects[DynDataList.ItemIndex] as TWPRTFDataCollection);
     // Make sure the new text is shown
     WPRichText1.SetFocus;
end;

procedure TWPDynRTFData.Panel4DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  Accept := (Source = DynDataList) and (DynDataList.ItemIndex>=0);
end;

procedure TWPDynRTFData.Panel4DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  paint1.RTFData :=
     DynDataList.Items.Objects[DynDataList.ItemIndex] as TWPRTFDataCollection;
  PaintBox1.Invalidate;
end;

procedure TWPDynRTFData.Panel3DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  paint2.RTFData :=
      DynDataList.Items.Objects[DynDataList.ItemIndex] as TWPRTFDataCollection;
  PaintBox2.Invalidate;
end;

procedure TWPDynRTFData.PaintBox1Paint(Sender: TObject);
begin
  paint1.Draw(PaintBox1.Canvas,
            10, 10, PaintBox1.Height,
            WPScreenPixelsPerInch,
            WPScreenPixelsPerInch, 0 );
end;

procedure TWPDynRTFData.PaintBox2Paint(Sender: TObject);
begin
  paint2.Draw(PaintBox2.Canvas,
            10, 10, PaintBox1.Height,
            WPScreenPixelsPerInch div 2,
            WPScreenPixelsPerInch div 2, 0 );
end;

procedure TWPDynRTFData.WPRichText1Change(Sender: TObject);
begin
  PaintBox1.Invalidate;
  PaintBox2.Invalidate;
end;



end.

⌨️ 快捷键说明

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