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

RichEdit

开发平台:

Delphi

  1. unit Unit1;
  2. interface
  3. {==============================================================================}
  4. { This demo shows how checkpoints can generate events when they become visible }
  5. {------------------------------------------------------------------------------}
  6. { Properties set:                                                              }
  7. {  RichView1.CPEventKind = cpeAsSectionStart                                   }
  8. {  RichView2.CPEventKind = cpeWhenVisible                                      }
  9. {  rvoShowCheckpoints included in Options of both RichViews                    }
  10. {------------------------------------------------------------------------------}
  11. { Key properties, events and methods:                                          }
  12. { - CPEventKind                                                                }
  13. { - OnCheckpointVisible                                                        }
  14. { - AddNamedCheckpointEx                                                       }
  15. {==============================================================================}
  16. uses
  17.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  18.   StdCtrls, RVStyle, RVScroll, RichView, ExtCtrls;
  19. type
  20.   TForm1 = class(TForm)
  21.     RichView1: TRichView;
  22.     RVStyle1: TRVStyle;
  23.     Label1: TLabel;
  24.     lblChapter: TLabel;
  25.     Label2: TLabel;
  26.     RichView2: TRichView;
  27.     Label3: TLabel;
  28.     Label4: TLabel;
  29.     lblFigure: TLabel;
  30.     Image1: TImage;
  31.     Label5: TLabel;
  32.     procedure FormCreate(Sender: TObject);
  33.     procedure RichView1CheckpointVisible(Sender: TCustomRichView;
  34.       CheckpointData: TCheckpointData);
  35.     procedure RichView2CheckpointVisible(Sender: TCustomRichView;
  36.       CheckpointData: TCheckpointData);
  37.   private
  38.     { Private declarations }
  39.   public
  40.     { Public declarations }
  41.   end;
  42. var
  43.   Form1: TForm1;
  44. implementation
  45. {$R *.DFM}
  46. procedure TForm1.FormCreate(Sender: TObject);
  47. var i, j: Integer;
  48.     ico: TIcon;
  49. begin
  50.   // 1. Filling in left RichView
  51.   for i := 1 to 3 do begin
  52.     RichView1.AddNamedCheckpointEx('Chapter '+IntToStr(i),True);
  53.     RichView1.AddFmt('Chapter %d', [i], 1,1);
  54.     for j := 0 to 30 do
  55.       RichView1.AddNL('Bla - bla - bla - bla - bla - bla.',0,0);
  56.   end;
  57.   RichView1.Format;
  58.   // 2. Filling in right RichView
  59.   for i := 1 to 3 do begin
  60.     RichView2.AddNamedCheckpointEx('Figure '+IntToStr(i),True);
  61.     ico := TIcon.Create;
  62.     ico.Assign(Image1.Picture.Graphic);
  63.     RichView2.AddPictureEx('', ico, 1, rvvaBaseline);
  64.     RichView2.AddFmt('Figure %d', [i], 3,1);
  65.     for j := 0 to 30 do
  66.       RichView2.AddNL('Bla - bla - bla - bla - bla - bla.',0,0);
  67.   end;
  68.   RichView2.Format;
  69.   {
  70.     Comments:
  71.     1.
  72.     In this demo we use AddNamedCheckpointEx method.
  73.     It has second parameter - RaiseEvent: Boolean.
  74.     If set to True, RichView will generate event when this checkpoint
  75.     becomes visible
  76.     2.
  77.     Checkpoints with RaiseEvent=True can be displayed with different color
  78.     than other checkpoints.
  79.     Color of "normal" checkpoints: RVStyle.CheckpointColor;
  80.     Color of "RaiseEvent" checkpoints: RVStyle.CheckpointEvColor
  81.   }
  82. end;
  83. procedure TForm1.RichView1CheckpointVisible(Sender: TCustomRichView;
  84.   CheckpointData: TCheckpointData);
  85. var Name: String;
  86.     Tag: Integer;
  87.     RE: Boolean;
  88. begin
  89.   if CheckpointData<>nil then begin
  90.     RichView1.GetCheckpointInfo(CheckpointData, Tag, Name, RE);
  91.     lblChapter.Caption := Name;
  92.   end;
  93. end;
  94. procedure TForm1.RichView2CheckpointVisible(Sender: TCustomRichView;
  95.   CheckpointData: TCheckpointData);
  96. var Name: String;
  97.     Tag: Integer;
  98.     RE: Boolean;
  99. begin
  100.   if CheckpointData<>nil then begin
  101.     RichView2.GetCheckpointInfo(CheckpointData, Tag, Name, RE);
  102.     lblFigure.Caption := Name;
  103.     end
  104.   else
  105.     lblFigure.Caption := '(none)';
  106. end;
  107. end.