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

RichEdit

开发平台:

Delphi

  1. unit Unit1;
  2. interface
  3. {==============================================================================}
  4. { Demo of basic using of hypertext                                             }
  5. { In this demo were modified styles: RVStyle1.TextStyles[4] and                }
  6. { RVStyle.TextStyles[5]                                                        }
  7. { Setting RVStyle.TextStyles[i].Jump to True turns this text style into        }
  8. { hypertext style.                                                             }
  9. { Properties of text styles affecting hypertext appearance:                    }
  10. { - HoverColor (color of hypertext under mouse (clNone for not changing)       }
  11. { - HoverBackColor (color of hypertext background under mouse (clNone for      }
  12. {   transparent)                                                               }
  13. { - JumpCursor                                                                 }
  14. {------------------------------------------------------------------------------}
  15. { Key events and properties:                                                   }
  16. { - OnJump, OnRVMouseMove                                                      }
  17. { - FirstJumpNo                                                                }
  18. {------------------------------------------------------------------------------}
  19. uses
  20.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  21.   ExtCtrls, StdCtrls, RVStyle, RVScroll, RichView;
  22. type
  23.   TForm1 = class(TForm)
  24.     RichView1: TRichView;
  25.     RVStyle1: TRVStyle;
  26.     Label1: TLabel;
  27.     Panel1: TPanel;
  28.     procedure FormCreate(Sender: TObject);
  29.     procedure RichView1Jump(Sender: TObject; id: Integer);
  30.     procedure RichView1RVMouseMove(Sender: TObject; id: Integer);
  31.   private
  32.     { Private declarations }
  33.   public
  34.     { Public declarations }
  35.   end;
  36. var
  37.   Form1: TForm1;
  38. implementation
  39. {$R *.DFM}
  40. procedure TForm1.FormCreate(Sender: TObject);
  41. begin
  42.   // RVStyle1.TextStyles[4].Jump = RVStyle1.TextStyles[5].Jump = True
  43.   // This causes these styles to represent hypertext 
  44.   RichView1.AddNL('Hypertext',1,1);
  45.   RichView1.AddNL('Some text styles can be chosen as hypertext styles. ',0,0);
  46.   RichView1.AddNL('Like this one.',4,-1);
  47.   RichView1.AddNL(' You can have as many hypertext styles as you want.  ',0,-1);
  48.   RichView1.AddNL('Here is one more.',5,-1);
  49.   RichView1.Format;
  50.   {
  51.     The basic method to use hypertext is "hypertext IDs".
  52.     All hypertext jumps are numbered sequentially (0,1,...) from top of
  53.     document to bottom. These numbers are called "hypertext IDs".
  54.     Hypertext id is passed in OnJump and OnRVMouseMove events.
  55.   }
  56.   {
  57.     More correct, jumps are numbered as FirstJumpNo, FirstJumpNo+1,
  58.     FirstJumpNo+2,...
  59.     FirstJumpNo is a property of RichView, 0 by default
  60.   }
  61. end;
  62. procedure TForm1.RichView1Jump(Sender: TObject; id: Integer);
  63. begin
  64.   Panel1.Caption := 'Clicked: '+IntToStr(id);
  65. end;
  66. procedure TForm1.RichView1RVMouseMove(Sender: TObject; id: Integer);
  67. begin
  68.   // id=-1 when mouse leaves hypertext jump area
  69.   if id<>-1 then
  70.     Label1.Caption := IntToStr(id)
  71.   else
  72.     Label1.Caption := '---';
  73. end;
  74. end.