SynEdit: AutoComplet versus synComplete example

git-svn-id: trunk@27179 -
This commit is contained in:
martin 2010-08-24 13:41:20 +00:00
parent a03f7f1ffc
commit 74594dcf8c
2 changed files with 91 additions and 18 deletions
examples/SynEdit/Completion

View File

@ -837,25 +837,60 @@ object Form1: TForm1
Top = 1
Width = 5
end
object Memo2: TMemo
object Panel3: TPanel
Left = 288
Height = 276
Top = 1
Width = 270
Align = alClient
Lines.Strings = (
'For TsynComplete press ctrl-space.'
''
'values are'
'Personal Computer'
'Personal'
'Computer'
'Police Constable'
'Police'
'Constable'
)
ReadOnly = True
Caption = 'Panel3'
ClientHeight = 276
ClientWidth = 270
TabOrder = 2
object Memo2: TMemo
Left = 1
Height = 236
Top = 39
Width = 268
Align = alClient
Lines.Strings = (
'For TsynComplete press ctrl-space.'
''
'values are'
'Personal Computer'
'Personal'
'Computer'
'Police Constable'
'Police'
'Constable'
)
ReadOnly = True
TabOrder = 0
end
object chkSearch: TCheckBox
Left = 1
Height = 19
Top = 20
Width = 268
Align = alTop
Caption = 'Use/Filter in SearchPosition'
Checked = True
OnChange = chkSearchChange
State = cbChecked
TabOrder = 1
end
object chkExec: TCheckBox
Left = 1
Height = 19
Top = 1
Width = 268
Align = alTop
Caption = 'Filter in Execute'
Checked = True
OnChange = chkExecChange
State = cbChecked
TabOrder = 2
end
end
end
object SynAutoComplete1: TSynAutoComplete

View File

@ -13,16 +13,21 @@ type
{ TForm1 }
TForm1 = class(TForm)
chkSearch: TCheckBox;
chkExec: TCheckBox;
Label1: TLabel;
Label2: TLabel;
Memo1: TMemo;
Memo2: TMemo;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Splitter1: TSplitter;
Splitter2: TSplitter;
SynAutoComplete1: TSynAutoComplete;
SynEdit1: TSynEdit;
procedure chkExecChange(Sender: TObject);
procedure chkSearchChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Memo1Change(Sender: TObject);
private
@ -56,18 +61,37 @@ procedure TForm1.DoExecute(Sender: TObject);
end;
begin
SynCompletion.ItemList.Clear;
if chkExec.Checked then begin
Add('Personal Computer');
Add('Personal');
Add('Computer');
Add('Police Constable');
Add('Police');
Add('Constable');
end else begin
SynCompletion.ItemList.Add('Personal Computer');
SynCompletion.ItemList.Add('Personal');
SynCompletion.ItemList.Add('Computer');
SynCompletion.ItemList.Add('Police Constable');
SynCompletion.ItemList.Add('Police');
SynCompletion.ItemList.Add('Constable');
end;
end;
procedure TForm1.DoSearchPosition(var APosition: integer);
procedure Add(s: String);
begin
if pos(lowercase(SynCompletion.CurrentString), lowercase(s)) = 1 then
SynCompletion.ItemList.Add(s);
end;
begin
SynCompletion.ItemList.Clear;
Add('Personal Computer');
Add('Personal');
Add('Computer');
Add('Police Constable');
Add('Police');
Add('Constable');
end;
procedure TForm1.DoSearchPosition(var APosition: integer);
begin
DoExecute(nil);
APosition := 0;
end;
@ -81,5 +105,19 @@ begin
SynCompletion.OnSearchPosition := @DoSearchPosition;
end;
procedure TForm1.chkExecChange(Sender: TObject);
begin
SynEdit1.SetFocus;
end;
procedure TForm1.chkSearchChange(Sender: TObject);
begin
if chkSearch.Checked then
SynCompletion.OnSearchPosition := @DoSearchPosition
else
SynCompletion.OnSearchPosition := nil;
SynEdit1.SetFocus;
end;
end.