mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 21:09:30 +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'
|
||||
object ButtonsPanel: TButtonPanel
|
||||
Left = 6
|
||||
Height = 34
|
||||
Top = 317
|
||||
Height = 35
|
||||
Top = 316
|
||||
Width = 482
|
||||
OKButton.Name = 'OKButton'
|
||||
OKButton.Caption = '&OK'
|
||||
@ -76,7 +76,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
end
|
||||
object PageControl: TPageControl
|
||||
Left = 0
|
||||
Height = 281
|
||||
Height = 280
|
||||
Top = 30
|
||||
Width = 494
|
||||
ActivePage = EditorTabSheet
|
||||
@ -84,11 +84,11 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
TabIndex = 0
|
||||
TabOrder = 2
|
||||
object EditorTabSheet: TTabSheet
|
||||
ClientHeight = 253
|
||||
ClientHeight = 249
|
||||
ClientWidth = 490
|
||||
inline SQLEditor: TSynEdit
|
||||
Left = 0
|
||||
Height = 253
|
||||
Height = 249
|
||||
Top = 0
|
||||
Width = 490
|
||||
Align = alClient
|
||||
@ -98,6 +98,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
Font.Quality = fqNonAntialiased
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
PopupMenu = PMSQL
|
||||
TabOrder = 0
|
||||
Gutter.Width = 61
|
||||
Gutter.MouseActions = <
|
||||
@ -123,6 +124,30 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
Option = 0
|
||||
Priority = 0
|
||||
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
|
||||
Keystrokes = <
|
||||
item
|
||||
@ -571,7 +596,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
BracketHighlightStyle = sbhsBoth
|
||||
inline SynGutterPartList1: TSynGutterPartList
|
||||
object SynGutterMarks1: TSynGutterMarks
|
||||
Width = 23
|
||||
Width = 24
|
||||
end
|
||||
object SynGutterLineNumber1: TSynGutterLineNumber
|
||||
Width = 21
|
||||
@ -676,10 +701,12 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
end>
|
||||
end
|
||||
end
|
||||
inline SynRightGutterPartList1: TSynRightGutterPartList
|
||||
end
|
||||
end
|
||||
end
|
||||
object ResultTabSheet: TTabSheet
|
||||
ClientHeight = 253
|
||||
ClientHeight = 249
|
||||
ClientWidth = 490
|
||||
object ResultDBGrid: TDBGrid
|
||||
Left = 0
|
||||
@ -728,7 +755,7 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
left = 284
|
||||
top = 156
|
||||
Bitmap = {
|
||||
4C69040000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
4C69050000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00EAC39DFFE6BF96FFE4BB92FFE4BB92FFD1A06CF5D09E6DF6CC96
|
||||
5FDAC479427EB2673C09FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00E5BE96FFFFFFFEFFFDF3E9FFFDF3EAFFFCF2E8FFFAEFE3FFFAF2
|
||||
@ -856,7 +883,58 @@ object SQLStringsPropertyEditorDlg: TSQLStringsPropertyEditorDlg
|
||||
00000000000000000052000000FF000000FF0000001A00000000000000000000
|
||||
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
|
||||
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
|
||||
|
@ -10,8 +10,8 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
SynEdit, ButtonPanel, SynHighlighterSQL, ComCtrls, SQLDb, db, DBGrids,
|
||||
SrcEditorIntf;
|
||||
SynEdit, ButtonPanel, SynHighlighterSQL, ComCtrls, SQLDb, db, DBGrids, Menus,
|
||||
SrcEditorIntf,clipbrd;
|
||||
|
||||
type
|
||||
|
||||
@ -20,6 +20,10 @@ type
|
||||
TSQLStringsPropertyEditorDlg = class(TForm)
|
||||
ButtonsPanel: TButtonPanel;
|
||||
ImageList: TImageList;
|
||||
MICheck: TMenuItem;
|
||||
MICreateConstant: TMenuItem;
|
||||
MICleanup: TMenuItem;
|
||||
PMSQL: TPopupMenu;
|
||||
ResultDBGrid: TDBGrid;
|
||||
SQLDataSource: TDatasource;
|
||||
OpenDialog: TOpenDialog;
|
||||
@ -38,6 +42,8 @@ type
|
||||
TBCheck: TToolButton;
|
||||
procedure ExecuteToolButtonClick(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure MICleanupClick(Sender: TObject);
|
||||
procedure MICreateConstantClick(Sender: TObject);
|
||||
procedure OpenToolButtonClick(Sender: TObject);
|
||||
procedure SaveToolButtonClick(Sender: TObject);
|
||||
procedure TBCheckClick(Sender: TObject);
|
||||
@ -49,6 +55,8 @@ type
|
||||
|
||||
function CheckConnection:boolean;
|
||||
procedure CheckSQLSyntax(SQL: TStrings);
|
||||
procedure CleanupDelphiCode;
|
||||
procedure CreateConstant;
|
||||
public
|
||||
{ public declarations }
|
||||
constructor Create(AOwner:TComponent);override;
|
||||
@ -60,9 +68,11 @@ type
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
{$IFDEF HASSQLPARSER}
|
||||
uses fpsqltree,fpsqlparser;
|
||||
fpsqltree,fpsqlparser,
|
||||
{$ENDIF}
|
||||
strutils;
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
@ -123,8 +133,10 @@ Var
|
||||
begin
|
||||
{$IFDEF HASSQLPARSER}
|
||||
TBCheck.Visible:=True;
|
||||
MICheck.Visible:=True;
|
||||
{$ELSE}
|
||||
TBCheck.Visible:=False;
|
||||
MICheck.Visible:=True;
|
||||
{$ENDIF}
|
||||
D:=sqlStandard;
|
||||
If Assigned(FConnection) then
|
||||
@ -158,6 +170,66 @@ begin
|
||||
{$endif}
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user