ソースを参照

add syncomplition to querywindow

the complition word list is loaded from the file querycomplition.txt
mabudrais 12 年 前
コミット
51c98d88ed
3 ファイル変更51 行追加3 行削除
  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
   Color = clForm
   Menu = MainMenu1
   Menu = MainMenu1
   OnClose = FormClose
   OnClose = FormClose
+  OnCreate = FormCreate
   OnShow = FormShow
   OnShow = FormShow
   PopupMenu = pmTab
   PopupMenu = pmTab
   Position = poScreenCenter
   Position = poScreenCenter
-  LCLVersion = '1.0.8.0'
+  LCLVersion = '1.0.2.0'
   object Panel1: TPanel
   object Panel1: TPanel
     Left = 0
     Left = 0
     Height = 60
     Height = 60
@@ -782,7 +783,7 @@ object fmQueryWindow: TfmQueryWindow
       object TSynGutterSeparator
       object TSynGutterSeparator
         Width = 2
         Width = 2
         MouseActions = <>
         MouseActions = <>
-        MarkupInfo.Background = clWhite
+	MarkupInfo.Background = clWhite
         MarkupInfo.Foreground = clGray
         MarkupInfo.Foreground = clGray
       end
       end
       object TSynGutterCodeFolding
       object TSynGutterCodeFolding
@@ -2651,4 +2652,18 @@ object fmQueryWindow: TfmQueryWindow
       OnClick = lmExportAsHTMLClick
       OnClick = lmExportAsHTMLClick
     end
     end
   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
 end

+ 28 - 1
querywindow.pas

@@ -8,7 +8,7 @@ uses
   Classes, SysUtils, IBConnection, sqldb, db, FileUtil, LResources, Forms,
   Classes, SysUtils, IBConnection, sqldb, db, FileUtil, LResources, Forms,
   Controls, Graphics, Dialogs, ExtCtrls, PairSplitter, StdCtrls, Buttons,
   Controls, Graphics, Dialogs, ExtCtrls, PairSplitter, StdCtrls, Buttons,
   DBGrids, Menus, ComCtrls, SynEdit, SynHighlighterSQL, Reg, sqlscript,
   DBGrids, Menus, ComCtrls, SynEdit, SynHighlighterSQL, Reg, sqlscript,
-  SynEditTypes, Clipbrd, grids, DbCtrls;
+  SynEditTypes, SynCompletion, Clipbrd, grids, DbCtrls, types, LCLType;
 
 
 type
 type
 
 
@@ -79,6 +79,7 @@ type
     SaveDialog1: TSaveDialog;
     SaveDialog1: TSaveDialog;
     Splitter1: TSplitter;
     Splitter1: TSplitter;
     meQuery: TSynEdit;
     meQuery: TSynEdit;
+    SynCompletion1: TSynCompletion;
     SynSQLSyn1: TSynSQLSyn;
     SynSQLSyn1: TSynSQLSyn;
     ToolBar1: TToolBar;
     ToolBar1: TToolBar;
     tbNew: TToolButton;
     tbNew: TToolButton;
@@ -99,6 +100,7 @@ type
     procedure DBGridTitleClick(column: TColumn);
     procedure DBGridTitleClick(column: TColumn);
     procedure FindDialog1Find(Sender: TObject);
     procedure FindDialog1Find(Sender: TObject);
     procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
     procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
+    procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
     procedure FormShow(Sender: TObject);
     procedure lmCloseTabClick(Sender: TObject);
     procedure lmCloseTabClick(Sender: TObject);
     procedure lmCommaDelemitedClick(Sender: TObject);
     procedure lmCommaDelemitedClick(Sender: TObject);
@@ -123,6 +125,9 @@ type
 
 
     procedure SQLScript1Exception(Sender: TObject; Statement: TStrings;
     procedure SQLScript1Exception(Sender: TObject; Statement: TStrings;
       TheException: Exception; var Continue: boolean);
       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 tbCloseClick(Sender: TObject);
     procedure tbCommitClick(Sender: TObject);
     procedure tbCommitClick(Sender: TObject);
     procedure tbCommitRetainingClick(Sender: TObject);
     procedure tbCommitRetainingClick(Sender: TObject);
@@ -634,6 +639,13 @@ begin
   ShowMessage(TheException.Message);
   ShowMessage(TheException.Message);
 end;
 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);
 procedure TfmQueryWindow.tbCloseClick(Sender: TObject);
 begin
 begin
   Close;
   Close;
@@ -1502,6 +1514,21 @@ begin
   CloseAction:= caFree;
   CloseAction:= caFree;
 end;
 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);
 procedure TfmQueryWindow.FormShow(Sender: TObject);
 begin
 begin
   meQuery.SetFocus;
   meQuery.SetFocus;