mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-23 06:40:56 +02:00
* added popup-menu options to create string constant from SQL statement, and to clean up pascal string with SQL statement. Enables copy/paste from/to code.
git-svn-id: trunk@27425 -
This commit is contained in:
parent
5106674f1f
commit
19d1bedc52
@ -12,8 +12,8 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
LCLVersion = '0.9.29'
|
LCLVersion = '0.9.29'
|
||||||
object ButtonsPanel: TButtonPanel
|
object ButtonsPanel: TButtonPanel
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 34
|
Height = 35
|
||||||
Top = 317
|
Top = 316
|
||||||
Width = 482
|
Width = 482
|
||||||
OKButton.Name = 'OKButton'
|
OKButton.Name = 'OKButton'
|
||||||
OKButton.Caption = '&OK'
|
OKButton.Caption = '&OK'
|
||||||
@ -76,7 +76,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
end
|
end
|
||||||
object PageControl: TPageControl
|
object PageControl: TPageControl
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 281
|
Height = 280
|
||||||
Top = 30
|
Top = 30
|
||||||
Width = 494
|
Width = 494
|
||||||
ActivePage = EditorTabSheet
|
ActivePage = EditorTabSheet
|
||||||
@ -84,11 +84,11 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
TabIndex = 0
|
TabIndex = 0
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object EditorTabSheet: TTabSheet
|
object EditorTabSheet: TTabSheet
|
||||||
ClientHeight = 253
|
ClientHeight = 249
|
||||||
ClientWidth = 490
|
ClientWidth = 490
|
||||||
inline SQLEditor: TSynEdit
|
inline SQLEditor: TSynEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 253
|
Height = 249
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 490
|
Width = 490
|
||||||
Align = alClient
|
Align = alClient
|
||||||
@ -98,6 +98,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
Font.Quality = fqNonAntialiased
|
Font.Quality = fqNonAntialiased
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
|
PopupMenu = PMSQL
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Gutter.Width = 61
|
Gutter.Width = 61
|
||||||
Gutter.MouseActions = <
|
Gutter.MouseActions = <
|
||||||
@ -123,6 +124,30 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
Option = 0
|
Option = 0
|
||||||
Priority = 0
|
Priority = 0
|
||||||
end>
|
end>
|
||||||
|
RightGutter.Width = 0
|
||||||
|
RightGutter.MouseActions = <
|
||||||
|
item
|
||||||
|
Shift = []
|
||||||
|
ShiftMask = []
|
||||||
|
Button = mbLeft
|
||||||
|
ClickCount = ccAny
|
||||||
|
ClickDir = cdDown
|
||||||
|
Command = 13
|
||||||
|
MoveCaret = False
|
||||||
|
Option = 0
|
||||||
|
Priority = 0
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Shift = []
|
||||||
|
ShiftMask = []
|
||||||
|
Button = mbRight
|
||||||
|
ClickCount = ccSingle
|
||||||
|
ClickDir = cdUp
|
||||||
|
Command = 12
|
||||||
|
MoveCaret = False
|
||||||
|
Option = 0
|
||||||
|
Priority = 0
|
||||||
|
end>
|
||||||
Highlighter = SQLHighlighter
|
Highlighter = SQLHighlighter
|
||||||
Keystrokes = <
|
Keystrokes = <
|
||||||
item
|
item
|
||||||
@ -571,7 +596,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
BracketHighlightStyle = sbhsBoth
|
BracketHighlightStyle = sbhsBoth
|
||||||
inline SynGutterPartList1: TSynGutterPartList
|
inline SynGutterPartList1: TSynGutterPartList
|
||||||
object SynGutterMarks1: TSynGutterMarks
|
object SynGutterMarks1: TSynGutterMarks
|
||||||
Width = 23
|
Width = 24
|
||||||
end
|
end
|
||||||
object SynGutterLineNumber1: TSynGutterLineNumber
|
object SynGutterLineNumber1: TSynGutterLineNumber
|
||||||
Width = 21
|
Width = 21
|
||||||
@ -676,10 +701,12 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
end>
|
end>
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
inline SynRightGutterPartList1: TSynRightGutterPartList
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object ResultTabSheet: TTabSheet
|
object ResultTabSheet: TTabSheet
|
||||||
ClientHeight = 253
|
ClientHeight = 249
|
||||||
ClientWidth = 490
|
ClientWidth = 490
|
||||||
object ResultDBGrid: TDBGrid
|
object ResultDBGrid: TDBGrid
|
||||||
Left = 0
|
Left = 0
|
||||||
@ -728,7 +755,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
left = 284
|
left = 284
|
||||||
top = 156
|
top = 156
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
4C69040000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
4C69050000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00EAC39DFFE6BF96FFE4BB92FFE4BB92FFD1A06CF5D09E6DF6CC96
|
FF00FFFFFF00EAC39DFFE6BF96FFE4BB92FFE4BB92FFD1A06CF5D09E6DF6CC96
|
||||||
5FDAC479427EB2673C09FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
5FDAC479427EB2673C09FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00E5BE96FFFFFFFEFFFDF3E9FFFDF3EAFFFCF2E8FFFAEFE3FFFAF2
|
FF00FFFFFF00E5BE96FFFFFFFEFFFDF3E9FFFDF3EAFFFCF2E8FFFAEFE3FFFAF2
|
||||||
@ -856,7 +883,58 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
|||||||
00000000000000000052000000FF000000FF0000001A00000000000000000000
|
00000000000000000052000000FF000000FF0000001A00000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000
|
00000000000000000000000000000048783B004B7CDA004A7BE300487847FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00004A7BE50A69A6FF0B6DABFF004A7BF50048
|
||||||
|
7844FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00004A7BED0C72B2FF107DC1FF0A6BA9FF004A
|
||||||
|
7BDA00698A02008B9C82008B9C13FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF000049796F035286F40F7ABCFF107DC1FF0152
|
||||||
|
84F200859ACE008B9CFF008B9C29FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF0000487802004A7B95014E80F40B76B2FF0188
|
||||||
|
A1FF32AEBEFE1DA0B1F2008B9C3DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000064878100889CFE41BD
|
||||||
|
CDFF77DEEBFF1769B0F70036A0E4018FA0D2008C9D77008B9C15FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00008B9C5A018D9EF64FC8D8FF68DC
|
||||||
|
ECFF336DC8FF0D1BABFF62B1D7FF72DCEAFF43BDCCF70990A2F6018E9F9F008B
|
||||||
|
9C1BFFFFFF00FFFFFF00FFFFFF00FFFFFF00008B9C5F008D9EEB29A5BBF6284A
|
||||||
|
BBFF1D38B8FF61D8F6FF63EAFDFF6CEBFDFF7DEEFDFF88EAF8FF45BECDFA058F
|
||||||
|
9FF7008E9FA3008B9C40008B9C02FFFFFF00FFFFFF00008B9C070024A1D71342
|
||||||
|
ADFC84EAFBFF6BECFDFF84EFFDFF6DECFDFF52E9FDFF44E5FBFF65E3F3FF77DD
|
||||||
|
EBFF49C1CFFE1B9EAEF3008C9DEAFFFFFF00FFFFFF00FFFFFF00007F9C5F2FB0
|
||||||
|
C0F58AEFFDFF5FEAFDFF61EBFDFF52E9FDFF3CE6FDFF2ADBF3FF18D0E7FF10C6
|
||||||
|
DCFF49D2E4FF67D4E2FF018D9FE9FFFFFF00FFFFFF00FFFFFF00008B9C1A1194
|
||||||
|
A5F78BEDFBFF3CE5FCFF37E4FBFF2FDEF6FF23D7EEFF14CDE5FF04C3DBFF03C2
|
||||||
|
DAFF56D6E6FF33B6C6FB008E9FA8FFFFFF00FFFFFF00FFFFFF00FFFFFF00018E
|
||||||
|
A0D45ECFDDFF46DAEDFF18D0E7FF11CBE3FF07C4DCFF03C2DAFF03C2DAFF4CD3
|
||||||
|
E4FF58CDDCFF048E9FF4008B9C1CFFFFFF00FFFFFF00FFFFFF00FFFFFF00008B
|
||||||
|
9C431A9BABF66CDAE8FF10C5DCFF03C2DAFF03C2DAFF15C6DCFF5BD7E7FF56C8
|
||||||
|
D6FE058FA0F1008B9C3FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00008E9FC536B5C5FA5FD8E7FF26CADFFF4ED4E5FF6DD9E7FF32B4C5FB008D
|
||||||
|
9EE6008B9C26FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00008B9C13008D9EE24FC3D2FD5BD3E1FF30B5C6FA0890A1F6008D9FA9008B
|
||||||
|
9C14FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00008B9C1F008C9DED008D9EEC008D9E9E008B9C21FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
object PMSQL: TPopupMenu
|
||||||
|
Images = ImageList
|
||||||
|
left = 155
|
||||||
|
top = 101
|
||||||
|
object MICheck: TMenuItem
|
||||||
|
Caption = 'Check syntax'
|
||||||
|
ImageIndex = 3
|
||||||
|
OnClick = TBCheckClick
|
||||||
|
end
|
||||||
|
object MICleanup: TMenuItem
|
||||||
|
Caption = 'Clean-up Delphi code'
|
||||||
|
ImageIndex = 4
|
||||||
|
OnClick = MICleanupClick
|
||||||
|
end
|
||||||
|
object MICreateConstant: TMenuItem
|
||||||
|
Caption = 'Create string constant'
|
||||||
|
OnClick = MICreateConstantClick
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -10,8 +10,8 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||||
SynEdit, ButtonPanel, SynHighlighterSQL, ComCtrls, SQLDb, db, DBGrids,
|
SynEdit, ButtonPanel, SynHighlighterSQL, ComCtrls, SQLDb, db, DBGrids, Menus,
|
||||||
SrcEditorIntf;
|
SrcEditorIntf,clipbrd;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -20,6 +20,10 @@ type
|
|||||||
TSQLStringsPropertyEditorDlg = class(TForm)
|
TSQLStringsPropertyEditorDlg = class(TForm)
|
||||||
ButtonsPanel: TButtonPanel;
|
ButtonsPanel: TButtonPanel;
|
||||||
ImageList: TImageList;
|
ImageList: TImageList;
|
||||||
|
MICheck: TMenuItem;
|
||||||
|
MICreateConstant: TMenuItem;
|
||||||
|
MICleanup: TMenuItem;
|
||||||
|
PMSQL: TPopupMenu;
|
||||||
ResultDBGrid: TDBGrid;
|
ResultDBGrid: TDBGrid;
|
||||||
SQLDataSource: TDatasource;
|
SQLDataSource: TDatasource;
|
||||||
OpenDialog: TOpenDialog;
|
OpenDialog: TOpenDialog;
|
||||||
@ -38,6 +42,8 @@ type
|
|||||||
TBCheck: TToolButton;
|
TBCheck: TToolButton;
|
||||||
procedure ExecuteToolButtonClick(Sender: TObject);
|
procedure ExecuteToolButtonClick(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
|
procedure MICleanupClick(Sender: TObject);
|
||||||
|
procedure MICreateConstantClick(Sender: TObject);
|
||||||
procedure OpenToolButtonClick(Sender: TObject);
|
procedure OpenToolButtonClick(Sender: TObject);
|
||||||
procedure SaveToolButtonClick(Sender: TObject);
|
procedure SaveToolButtonClick(Sender: TObject);
|
||||||
procedure TBCheckClick(Sender: TObject);
|
procedure TBCheckClick(Sender: TObject);
|
||||||
@ -49,6 +55,8 @@ type
|
|||||||
|
|
||||||
function CheckConnection:boolean;
|
function CheckConnection:boolean;
|
||||||
procedure CheckSQLSyntax(SQL: TStrings);
|
procedure CheckSQLSyntax(SQL: TStrings);
|
||||||
|
procedure CleanupDelphiCode;
|
||||||
|
procedure CreateConstant;
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
constructor Create(AOwner:TComponent);override;
|
constructor Create(AOwner:TComponent);override;
|
||||||
@ -60,9 +68,11 @@ type
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
{$IFDEF HASSQLPARSER}
|
{$IFDEF HASSQLPARSER}
|
||||||
uses fpsqltree,fpsqlparser;
|
fpsqltree,fpsqlparser,
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
strutils;
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
@ -123,8 +133,10 @@ Var
|
|||||||
begin
|
begin
|
||||||
{$IFDEF HASSQLPARSER}
|
{$IFDEF HASSQLPARSER}
|
||||||
TBCheck.Visible:=True;
|
TBCheck.Visible:=True;
|
||||||
|
MICheck.Visible:=True;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
TBCheck.Visible:=False;
|
TBCheck.Visible:=False;
|
||||||
|
MICheck.Visible:=True;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
D:=sqlStandard;
|
D:=sqlStandard;
|
||||||
If Assigned(FConnection) then
|
If Assigned(FConnection) then
|
||||||
@ -158,6 +170,66 @@ begin
|
|||||||
{$endif}
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSQLStringsPropertyEditorDlg.MICleanupClick(Sender: TObject);
|
||||||
|
|
||||||
|
begin
|
||||||
|
CleanupDelphiCode;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSQLStringsPropertyEditorDlg.CleanupDelphiCode;
|
||||||
|
|
||||||
|
Var
|
||||||
|
L : TStringList;
|
||||||
|
I,J,K : Integer;
|
||||||
|
S : String;
|
||||||
|
begin
|
||||||
|
L:=TStringList.Create;
|
||||||
|
try
|
||||||
|
L.Assign(SQLEditor.Lines);
|
||||||
|
For I:=0 to L.Count-1 do
|
||||||
|
begin
|
||||||
|
S:=L[i];
|
||||||
|
K:=0;
|
||||||
|
For J:=1 to Length(S) do
|
||||||
|
If S[j]='''' then
|
||||||
|
Inc(K);
|
||||||
|
if (K<>0) and ((K mod 2)=0) then
|
||||||
|
begin
|
||||||
|
J:=Pos('''',S);
|
||||||
|
Delete(S,1,J);
|
||||||
|
J:=RPos('''',S);
|
||||||
|
S:=Copy(S,1,J-1);
|
||||||
|
L[i]:=S;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
SQLEditor.Lines:=L;
|
||||||
|
finally
|
||||||
|
L.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSQLStringsPropertyEditorDlg.MICreateConstantClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
CreateConstant;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSQLStringsPropertyEditorDlg.CreateConstant;
|
||||||
|
|
||||||
|
Var
|
||||||
|
C,S : String;
|
||||||
|
I : Integer;
|
||||||
|
|
||||||
|
begin
|
||||||
|
For I:=0 to SQLEditor.Lines.Count-1 do
|
||||||
|
begin
|
||||||
|
S:=SQLEditor.Lines[i];
|
||||||
|
If (C<>'') then
|
||||||
|
C:=C+'+sLineBreak+'+sLineBreak;
|
||||||
|
C:=C+''''+StringReplace(S,'''','''''',[rfReplaceAll])+'''';
|
||||||
|
end;
|
||||||
|
C:='SQL = '+C+';';
|
||||||
|
Clipboard.AsText:=C;
|
||||||
|
end;
|
||||||
|
|
||||||
//------------------------------------------------------------------------//
|
//------------------------------------------------------------------------//
|
||||||
procedure TSQLStringsPropertyEditorDlg.SaveToolButtonClick(Sender: TObject);
|
procedure TSQLStringsPropertyEditorDlg.SaveToolButtonClick(Sender: TObject);
|
||||||
|
Loading…
Reference in New Issue
Block a user