Browse Source

add syncomplition to querywindow

the complition word list is loaded from the file querycomplition.txt
mabudrais 12 năm trước cách đây
mục cha
commit
51c98d88ed
3 tập tin đã thay đổi với 51 bổ sung3 xóa
  1. 6 0
      querycomplition.txt
  2. 17 2
      querywindow.lfm
  3. 28 1
      querywindow.pas

+ 6 - 0
querycomplition.txt

@@ -0,0 +1,6 @@
+create
+table
+Select
+From
+INTEGER
+FLOAT

+ 17 - 2
querywindow.lfm

@@ -10,10 +10,11 @@ object fmQueryWindow: TfmQueryWindow
   Color = clForm
   Menu = MainMenu1
   OnClose = FormClose
+  OnCreate = FormCreate
   OnShow = FormShow
   PopupMenu = pmTab
   Position = poScreenCenter
-  LCLVersion = '1.0.8.0'
+  LCLVersion = '1.0.2.0'
   object Panel1: TPanel
     Left = 0
     Height = 60
@@ -782,7 +783,7 @@ object fmQueryWindow: TfmQueryWindow
       object TSynGutterSeparator
         Width = 2
         MouseActions = <>
-        MarkupInfo.Background = clWhite
+	MarkupInfo.Background = clWhite
         MarkupInfo.Foreground = clGray
       end
       object TSynGutterCodeFolding
@@ -2651,4 +2652,18 @@ object fmQueryWindow: TfmQueryWindow
       OnClick = lmExportAsHTMLClick
     end
   end
+  object SynCompletion1: TSynCompletion
+    Position = 0
+    LinesInWindow = 6
+    SelectedColor = clHighlight
+    CaseSensitive = False
+    Width = 262
+    ShortCut = 16416
+    EndOfTokenChr = '()[].'
+    OnCodeCompletion = SynCompletion1CodeCompletion
+    ExecCommandID = ecSynCompletionExecute
+    Editor = meQuery
+    left = 455
+    top = 166
+  end
 end

+ 28 - 1
querywindow.pas

@@ -8,7 +8,7 @@ uses
   Classes, SysUtils, IBConnection, sqldb, db, FileUtil, LResources, Forms,
   Controls, Graphics, Dialogs, ExtCtrls, PairSplitter, StdCtrls, Buttons,
   DBGrids, Menus, ComCtrls, SynEdit, SynHighlighterSQL, Reg, sqlscript,
-  SynEditTypes, Clipbrd, grids, DbCtrls;
+  SynEditTypes, SynCompletion, Clipbrd, grids, DbCtrls, types, LCLType;
 
 type
 
@@ -79,6 +79,7 @@ type
     SaveDialog1: TSaveDialog;
     Splitter1: TSplitter;
     meQuery: TSynEdit;
+    SynCompletion1: TSynCompletion;
     SynSQLSyn1: TSynSQLSyn;
     ToolBar1: TToolBar;
     tbNew: TToolButton;
@@ -99,6 +100,7 @@ type
     procedure DBGridTitleClick(column: TColumn);
     procedure FindDialog1Find(Sender: TObject);
     procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
+    procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
     procedure lmCloseTabClick(Sender: TObject);
     procedure lmCommaDelemitedClick(Sender: TObject);
@@ -123,6 +125,9 @@ type
 
     procedure SQLScript1Exception(Sender: TObject; Statement: TStrings;
       TheException: Exception; var Continue: boolean);
+    procedure SynCompletion1CodeCompletion(var Value: string;
+      SourceValue: string; var SourceStart, SourceEnd: TPoint;
+      KeyChar: TUTF8Char; Shift: TShiftState);
     procedure tbCloseClick(Sender: TObject);
     procedure tbCommitClick(Sender: TObject);
     procedure tbCommitRetainingClick(Sender: TObject);
@@ -634,6 +639,13 @@ begin
   ShowMessage(TheException.Message);
 end;
 
+procedure TfmQueryWindow.SynCompletion1CodeCompletion(var Value: string;
+  SourceValue: string; var SourceStart, SourceEnd: TPoint; KeyChar: TUTF8Char;
+  Shift: TShiftState);
+begin
+  SynCompletion1.Deactivate;
+end;
+
 procedure TfmQueryWindow.tbCloseClick(Sender: TObject);
 begin
   Close;
@@ -1502,6 +1514,21 @@ begin
   CloseAction:= caFree;
 end;
 
+procedure TfmQueryWindow.FormCreate(Sender: TObject);
+var
+F:TextFile;
+str:string;
+begin
+  AssignFile(F,'querycomplition.txt');
+  Reset(F);
+  while not EOF(F) do
+  begin
+    ReadLn(F,str);
+  SynCompletion1.ItemList.Add(str);
+  end;
+  CloseFile(F);
+end;
+
 procedure TfmQueryWindow.FormShow(Sender: TObject);
 begin
   meQuery.SetFocus;