-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbookmark HL SE
More file actions
149 lines (93 loc) · 2.5 KB
/
Copy pathbookmark HL SE
File metadata and controls
149 lines (93 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, SynEditMarks, Forms, Dialogs, Controls, Graphics, StdCtrls, SynEdit;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
ImageList1: TImageList;
ME1: TSynEdit;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
m: TSynEditMark;
begin
m := TSynEditMark.Create(ME1);
m.Line := 2;
m.ImageList := ImageList1;
m.ImageIndex := 0;
m.Visible := true;
ME1.Marks.Add(m);
end;
end.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Forms, Graphics, Dialogs, SynEdit, Menus, LazUTF8,
SynHighlighterPosition, SynEditHighlighter, Classes;
type
{ TForm1 }
TForm1 = class(TForm)
MainMenu1: TMainMenu;
FileMenuItem: TMenuItem;
ExitMenuItem: TMenuItem;
OpenMenuItem: TMenuItem;
MenuItem2: TMenuItem;
OpenDialog1: TOpenDialog;
SynEdit1: TSynEdit;
procedure FormCreate(Sender: TObject);
procedure OpenMenuItemClick(Sender: TObject);
procedure SynEdit1Change(Sender: TObject);
private
public
Highlighter: TSynPositionHighlighter;
end;
var
Form1: TForm1;
implementation
{$R unit1.lfm}
{ TForm1 }
procedure TForm1.OpenMenuItemClick(Sender: TObject);
begin
if not OpenDialog1.Execute then exit;
SynEdit1.Lines.LoadFromFile(UTF8ToSys(OpenDialog1.FileName));
end;
procedure TForm1.SynEdit1Change(Sender: TObject);
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Attr1, Attr2: TtkTokenKind;
begin
// create highlighter
Highlighter:=TSynPositionHighlighter.Create(Self);
// add some attributes
Attr1:=Highlighter.CreateTokenID('Attr1',clRed,clNone,[]);
Attr2:=Highlighter.CreateTokenID('Attr2',clBlue,clNone,[fsBold]);
// define highlighted areas
// Line 0, from start of line to pos 3 (3 chars) highlighted as Attr1
Highlighter.AddToken(0,3,Attr1);
// Line 1, keep the first 3 chars as default
Highlighter.AddToken(1,3,tkText);
// Line 1, from pos 3 (end of prev token) to pos 5 (2 chars) highlighted as Attr2
Highlighter.AddToken(1,5,Attr2);
// use highlighter
SynEdit1.Highlighter:=Highlighter;
// set some example text
SynEdit1.Lines.Text:=
'This is some'+LineEnding
+'example text.'+LineEnding;
end;
end.