mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-09 15:52:35 +02:00
106 lines
2.3 KiB
ObjectPascal
106 lines
2.3 KiB
ObjectPascal
{
|
|
This example shows, how the the Keywords, Objects and Constants properties of
|
|
the class TSynAnySyn can be controlled at runtime.
|
|
}
|
|
unit Unit1;
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, SynMemo,
|
|
SynHighlighterAny, CheckLst, StdCtrls;
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
ButtonUncheckAll: TButton;
|
|
ButtonCheckAll: TButton;
|
|
CheckListBoxConstants: TCheckListBox;
|
|
CheckListBoxObjects: TCheckListBox;
|
|
CheckListBoxKeys: TCheckListBox;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
SynAnySyn: TSynAnySyn;
|
|
SynMemo: TSynMemo;
|
|
procedure ButtonCheckAllClick(Sender: TObject);
|
|
procedure ButtonUncheckAllClick(Sender: TObject);
|
|
procedure CheckListBoxHandler(Sender: TObject; Index: integer);
|
|
private
|
|
|
|
public
|
|
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R unit1.lfm}
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.CheckListBoxHandler(Sender: TObject; Index: integer);
|
|
var
|
|
s: TStrings;
|
|
begin
|
|
if Sender = CheckListBoxKeys then
|
|
s:= SynAnySyn.KeyWords
|
|
else if Sender = CheckListBoxObjects then
|
|
s:= SynAnySyn.Objects
|
|
else
|
|
s:= SynAnySyn.Constants;
|
|
With Sender As TCheckListBox do begin
|
|
if Checked[Index] then
|
|
s.Add(Items[Index])
|
|
else begin
|
|
try
|
|
s.Delete(s.IndexOf(Items[Index]));
|
|
except
|
|
// it is just a demo ;-)
|
|
end;
|
|
end;
|
|
SynMemo.Refresh;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.ButtonCheckAllClick(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i:= 0 to 3 do begin
|
|
CheckListBoxKeys.Checked[i]:= TRUE;
|
|
CheckListBoxObjects.Checked[i]:= TRUE;
|
|
CheckListBoxConstants.Checked[i]:= TRUE;
|
|
end;
|
|
SynAnySyn.KeyWords.Clear;
|
|
SynAnySyn.KeyWords.Assign(CheckListBoxKeys.Items);
|
|
SynAnySyn.Objects.Clear;
|
|
SynAnySyn.Objects.Assign(CheckListBoxObjects.Items);
|
|
SynAnySyn.Constants.Clear;
|
|
SynAnySyn.Constants.Assign(CheckListBoxConstants.Items);
|
|
SynMemo.Refresh;
|
|
end;
|
|
|
|
procedure TForm1.ButtonUncheckAllClick(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i:= 0 to 3 do begin
|
|
CheckListBoxKeys.Checked[i]:= FALSE;
|
|
CheckListBoxObjects.Checked[i]:= FALSE;
|
|
CheckListBoxConstants.Checked[i]:= FALSE;
|
|
end;
|
|
SynAnySyn.KeyWords.Clear;
|
|
SynAnySyn.Objects.Clear;
|
|
SynAnySyn.Constants.Clear;
|
|
SynMemo.Refresh;
|
|
end;
|
|
|
|
end.
|
|
|