浏览代码

Merge pull request #6 from mabudrais/master

adding syncomplition to query window
mabudrais 12 年之前
父节点
当前提交
55474d9a7a
共有 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;