Unit1.pas
上传用户:daoqigc
上传日期:2021-04-20
资源大小:2795k
文件大小:2k
源码类别:

RichEdit

开发平台:

Delphi

  1. unit Unit1;
  2. interface
  3. {==============================================================================}
  4. { This demo shows how to obtain list of checkpoints in document.               }
  5. { Key methods:                                                                 }
  6. { - GetFirstCheckpoint, GetNextCheckpoint;                                     }
  7. { - GetCheckpointInfo.                                                         }
  8. {==============================================================================}
  9. uses
  10.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  11.   StdCtrls, RVStyle, RVScroll, RichView;
  12. type
  13.   TForm1 = class(TForm)
  14.     RichView1: TRichView;
  15.     RVStyle1: TRVStyle;
  16.     ListBox1: TListBox;
  17.     Button1: TButton;
  18.     procedure FormCreate(Sender: TObject);
  19.     procedure Button1Click(Sender: TObject);
  20.   private
  21.     { Private declarations }
  22.   public
  23.     { Public declarations }
  24.   end;
  25. var
  26.   Form1: TForm1;
  27. implementation
  28. {$R *.DFM}
  29. procedure TForm1.FormCreate(Sender: TObject);
  30. var i, j: Integer;
  31.     CheckpointData : TCheckpointData;
  32.     Name: String;
  33.     RaiseEvent: Boolean;
  34.     Tag: Integer;
  35. begin
  36.   // 1. Filling in RichView
  37.   for i := 1 to 3 do begin
  38.     RichView1.AddNamedCheckpoint('C'+IntToStr(i));
  39.     RichView1.AddFmt('Chapter %d', [i], 1,1);
  40.     for j := 0 to 30 do
  41.       RichView1.AddNL('Bla - bla - bla - bla - bla - bla - bla - bla'+
  42.                       '- bla - bla - bla - bla - bla - bla - bla - bla',0,0);
  43.   end;
  44.   RichView1.AddNamedCheckpoint('END');
  45.   RichView1.Format;
  46.   // 2. Filling in list of checkpoints
  47.   CheckpointData :=  RichView1.GetFirstCheckpoint;
  48.   if CheckpointData<>nil then begin
  49.     repeat
  50.       RichView1.GetCheckpointInfo(CheckpointData, Tag, Name, RaiseEvent);
  51.       // Tag and RaiseEvent will be discussed in next demos
  52.       ListBox1.Items.Add(Name);
  53.       CheckpointData := RichView1.GetNextCheckpoint(CheckpointData);
  54.     until CheckpointData=nil;
  55.     ListBox1.ItemIndex := 0;
  56.   end;
  57. end;
  58. procedure TForm1.Button1Click(Sender: TObject);
  59. var CheckpointIndex: Integer;
  60. begin
  61.   CheckpointIndex := ListBox1.ItemIndex;
  62.   if CheckpointIndex=-1 then exit;
  63.   RichView1.ScrollTo(RichView1.GetCheckpointY(CheckpointIndex));
  64. end;
  65. end.