Issue #1482: enable events on Database tab

This commit is contained in:
Ansgar Becker
2025-03-03 17:31:38 +01:00
parent a7d4a17066
commit 005f86243c
3 changed files with 228 additions and 89 deletions

View File

@ -375,7 +375,7 @@ type
procedure FixVT(VT: TVirtualStringTree; MultiLineCount: Word=1); procedure FixVT(VT: TVirtualStringTree; MultiLineCount: Word=1);
function GetTextHeight(Font: TFont): Integer; function GetTextHeight(Font: TFont): Integer;
function ColorAdjustBrightness(Col: TColor; Shift: SmallInt): TColor; function ColorAdjustBrightness(Col: TColor; Shift: SmallInt): TColor;
//procedure DeInitializeVTNodes(Sender: TBaseVirtualTree); procedure DeInitializeVTNodes(Sender: TBaseVirtualTree);
function FindNode(VT: TLazVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode; function FindNode(VT: TLazVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode;
function SelectNode(VT: TLazVirtualStringTree; idx: Int64; ParentNode: PVirtualNode=nil): Boolean; overload; function SelectNode(VT: TLazVirtualStringTree; idx: Int64; ParentNode: PVirtualNode=nil): Boolean; overload;
function SelectNode(VT: TLazVirtualStringTree; Node: PVirtualNode; ClearSelection: Boolean=True): Boolean; overload; function SelectNode(VT: TLazVirtualStringTree; Node: PVirtualNode; ClearSelection: Boolean=True): Boolean; overload;
@ -383,8 +383,8 @@ type
procedure SetVTSelection(VT: TVirtualStringTree; SelectedCaptions: TStringList; FocusedCaption: String); procedure SetVTSelection(VT: TVirtualStringTree; SelectedCaptions: TStringList; FocusedCaption: String);
function GetNextNode(Tree: TLazVirtualStringTree; CurrentNode: PVirtualNode; Selected: Boolean=False): PVirtualNode; function GetNextNode(Tree: TLazVirtualStringTree; CurrentNode: PVirtualNode; Selected: Boolean=False): PVirtualNode;
function GetPreviousNode(Tree: TLazVirtualStringTree; CurrentNode: PVirtualNode; Selected: Boolean=False): PVirtualNode; function GetPreviousNode(Tree: TLazVirtualStringTree; CurrentNode: PVirtualNode; Selected: Boolean=False): PVirtualNode;
//function DateBackFriendlyCaption(d: TDateTime): String; function DateBackFriendlyCaption(d: TDateTime): String;
//function DateTimeToStrDef(DateTime: TDateTime; Default: String): String; function DateTimeToStrDef(DateTime: TDateTime; Default: String): String;
function TruncDef(X: Real; Default: Int64): Int64; function TruncDef(X: Real; Default: Int64): Int64;
function GetLightness(AColor: TColor): Byte; function GetLightness(AColor: TColor): Byte;
//function ParamBlobToStr(lpData: Pointer): String; //function ParamBlobToStr(lpData: Pointer): String;
@ -1434,9 +1434,9 @@ begin
VT.TreeOptions.PaintOptions := VT.TreeOptions.PaintOptions + [toHotTrack] VT.TreeOptions.PaintOptions := VT.TreeOptions.PaintOptions + [toHotTrack]
else else
VT.TreeOptions.PaintOptions := VT.TreeOptions.PaintOptions - [toHotTrack]; VT.TreeOptions.PaintOptions := VT.TreeOptions.PaintOptions - [toHotTrack];
//VT.OnGetHint := MainForm.AnyGridGetHint; VT.OnGetHint := MainForm.AnyGridGetHint;
//VT.OnScroll := MainForm.AnyGridScroll; VT.OnScroll := MainForm.AnyGridScroll;
//VT.OnMouseWheel := MainForm.AnyGridMouseWheel; VT.OnMouseWheel := MainForm.AnyGridMouseWheel;
VT.ShowHint := True; VT.ShowHint := True;
if toGridExtensions in VT.TreeOptions.MiscOptions then if toGridExtensions in VT.TreeOptions.MiscOptions then
@ -1444,8 +1444,8 @@ begin
else else
VT.HintMode := hmTooltip; // Just a quick tooltip for clipped nodes VT.HintMode := hmTooltip; // Just a quick tooltip for clipped nodes
// Apply case insensitive incremental search event // Apply case insensitive incremental search event
//if VT.IncrementalSearch <> VirtualTrees.Types.isNone then if VT.IncrementalSearch <> laz.VirtualTrees.isNone then
// VT.OnIncrementalSearch := Mainform.AnyGridIncrementalSearch; VT.OnIncrementalSearch := Mainform.AnyGridIncrementalSearch;
//VT.OnStartOperation := Mainform.AnyGridStartOperation; //VT.OnStartOperation := Mainform.AnyGridStartOperation;
//VT.OnEndOperation := Mainform.AnyGridEndOperation; //VT.OnEndOperation := Mainform.AnyGridEndOperation;
end; end;
@ -1472,7 +1472,7 @@ begin
end; end;
{procedure DeInitializeVTNodes(Sender: TBaseVirtualTree); procedure DeInitializeVTNodes(Sender: TBaseVirtualTree);
var var
Node: PVirtualNode; Node: PVirtualNode;
begin begin
@ -1483,7 +1483,7 @@ begin
Node.States := Node.States - [vsInitialized]; Node.States := Node.States - [vsInitialized];
Node := Sender.GetNextInitialized(Node); Node := Sender.GetNextInitialized(Node);
end; end;
end;} end;
function FindNode(VT: TLazVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode; function FindNode(VT: TLazVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode;
@ -1646,7 +1646,7 @@ begin
end; end;
{function DateBackFriendlyCaption(d: TDateTime): String; function DateBackFriendlyCaption(d: TDateTime): String;
var var
MonthsAgo, DaysAgo, HoursAgo, MinutesAgo: Int64; MonthsAgo, DaysAgo, HoursAgo, MinutesAgo: Int64;
begin begin
@ -1663,10 +1663,10 @@ begin
else if MinutesAgo = 1 then Result := f_('%s minute ago', [FormatNumber(MinutesAgo)]) else if MinutesAgo = 1 then Result := f_('%s minute ago', [FormatNumber(MinutesAgo)])
else if MinutesAgo > 0 then Result := f_('%s minutes ago', [FormatNumber(MinutesAgo)]) else if MinutesAgo > 0 then Result := f_('%s minutes ago', [FormatNumber(MinutesAgo)])
else Result := _('less than a minute ago'); else Result := _('less than a minute ago');
end;} end;
{function DateTimeToStrDef(DateTime: TDateTime; Default: String) : String; function DateTimeToStrDef(DateTime: TDateTime; Default: String) : String;
begin begin
try try
if DateTime = 0 then if DateTime = 0 then
@ -1676,7 +1676,7 @@ begin
except except
on EInvalidOp do Result := Default; on EInvalidOp do Result := Default;
end; end;
end;} end;
function TruncDef(X: Real; Default: Int64): Int64; function TruncDef(X: Real; Default: Int64): Int64;
@ -1774,11 +1774,11 @@ begin
for SortItem in Self do begin for SortItem in Self do begin
if Result <> '' then if Result <> '' then
Result := Result + ', '; Result := Result + ', ';
//if SortItem.Order = sioAscending then if SortItem.Order = sioAscending then
// SortOrder := Connection.GetSQLSpecifity(spOrderAsc) SortOrder := Connection.GetSQLSpecifity(spOrderAsc)
//else else
// SortOrder := Connection.GetSQLSpecifity(spOrderDesc); SortOrder := Connection.GetSQLSpecifity(spOrderDesc);
//Result := Result + Connection.QuoteIdent(SortItem.Column) + ' ' + SortOrder; Result := Result + Connection.QuoteIdent(SortItem.Column) + ' ' + SortOrder;
end; end;
end; end;
@ -2080,6 +2080,7 @@ var
State: TKeyboardState; State: TKeyboardState;
begin begin
// Checks whether a key is pressed, defined by virtual key code // Checks whether a key is pressed, defined by virtual key code
// Windows-only. Prefer "ssShift in GetKeyShiftState"
GetKeyboardState(State); GetKeyboardState(State);
Result := (State[Code] and 128) <> 0; Result := (State[Code] and 128) <> 0;
end;} end;}

View File

@ -962,11 +962,11 @@ object MainForm: TMainForm
Height = 316 Height = 316
Top = 0 Top = 0
Width = 780 Width = 780
ActivePage = tabHost ActivePage = tabDatabase
Align = alClient Align = alClient
Images = ImageListIcons8 Images = ImageListIcons8
PopupMenu = popupMainTabs PopupMenu = popupMainTabs
TabIndex = 0 TabIndex = 1
TabOrder = 1 TabOrder = 1
OnChange = PageControlMainChange OnChange = PageControlMainChange
OnChanging = PageControlMainChanging OnChanging = PageControlMainChanging
@ -980,11 +980,11 @@ object MainForm: TMainForm
Height = 283 Height = 283
Top = 0 Top = 0
Width = 772 Width = 772
ActivePage = tabVariables ActivePage = tabCommandStats
Align = alClient Align = alClient
Images = ImageListIcons8 Images = ImageListIcons8
PopupMenu = popupHost PopupMenu = popupHost
TabIndex = 1 TabIndex = 4
TabOrder = 0 TabOrder = 0
OnChange = PageControlHostChange OnChange = PageControlHostChange
object tabDatabases: TTabSheet object tabDatabases: TTabSheet
@ -1059,6 +1059,7 @@ object MainForm: TMainForm
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible, hoDisableAnimatedResize] Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible, hoDisableAnimatedResize]
Header.SortColumn = 0 Header.SortColumn = 0
Images = ImageListIcons8 Images = ImageListIcons8
IncrementalSearch = isInitializedOnly
PopupMenu = popupHost PopupMenu = popupHost
TabOrder = 0 TabOrder = 0
TreeOptions.PaintOptions = [toHotTrack, toShowButtons, toShowDropmark, toShowHorzGridLines, toShowVertGridLines, toThemeAware, toUseBlendedImages, toGhostedIfUnfocused, toUseExplorerTheme, toHideTreeLinesIfThemed] TreeOptions.PaintOptions = [toHotTrack, toShowButtons, toShowDropmark, toShowHorzGridLines, toShowVertGridLines, toThemeAware, toUseBlendedImages, toGhostedIfUnfocused, toUseExplorerTheme, toHideTreeLinesIfThemed]
@ -1110,6 +1111,7 @@ object MainForm: TMainForm
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible, hoDisableAnimatedResize] Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible, hoDisableAnimatedResize]
Header.SortColumn = 0 Header.SortColumn = 0
Images = ImageListIcons8 Images = ImageListIcons8
IncrementalSearch = isInitializedOnly
ParentShowHint = False ParentShowHint = False
PopupMenu = popupHost PopupMenu = popupHost
ShowHint = True ShowHint = True
@ -1863,11 +1865,147 @@ object MainForm: TMainForm
Width = 772 Width = 772
Align = alClient Align = alClient
DefaultText = 'Node' DefaultText = 'Node'
Header.AutoSizeIndex = 0 EditDelay = 500
Header.Columns = <> Header.AutoSizeIndex = -1
Header.MainColumn = -1 Header.Columns = <
item
Position = 0
Text = 'Name'
Width = 120
end
item
Position = 1
Text = 'Rows'
Width = 70
end
item
Position = 2
Text = 'Size'
Width = 70
end
item
Position = 3
Text = 'Created'
Width = 120
end
item
Position = 4
Text = 'Updated'
Width = 120
end
item
Position = 5
Text = 'Engine'
Width = 70
end
item
Position = 6
Text = 'Comment'
Width = 100
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 7
Text = 'Version'
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 8
Text = 'Row format'
Width = 70
end
item
Alignment = taRightJustify
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 9
Text = 'Avg row length'
Width = 70
end
item
Alignment = taRightJustify
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 10
Text = 'Max data length'
Width = 70
end
item
Alignment = taRightJustify
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 11
Text = 'Index length'
Width = 70
end
item
Alignment = taRightJustify
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 12
Text = 'Data free'
Width = 70
end
item
Alignment = taRightJustify
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 13
Text = 'Auto increment'
Width = 90
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 14
Text = 'Check time'
Width = 120
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 15
Text = 'Collation'
Width = 70
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 16
Text = 'Checksum'
Width = 70
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark]
Position = 17
Text = 'Create options'
Width = 70
end
item
Position = 18
Text = 'Type'
end>
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible, hoDisableAnimatedResize]
Header.SortColumn = 0
HintMode = hmTooltip
Images = ImageListIcons8
IncrementalSearch = isInitializedOnly
ParentShowHint = False
PopupMenu = popupDB PopupMenu = popupDB
ShowHint = True
TabOrder = 0 TabOrder = 0
TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes, toAutoChangeScale]
TreeOptions.MiscOptions = [toEditable, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toEditOnClick]
TreeOptions.PaintOptions = [toHotTrack, toShowDropmark, toShowHorzGridLines, toShowVertGridLines, toThemeAware, toUseBlendedImages, toUseExplorerTheme]
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toRightClickSelect]
OnAfterPaint = AnyGridAfterPaint
OnBeforeCellPaint = ListTablesBeforeCellPaint
OnBeforePaint = ListTablesBeforePaint
OnChange = ListTablesChange
OnCompareNodes = AnyGridCompareNodes
OnDblClick = ListTablesDblClick
OnEditing = ListTablesEditing
OnGetText = ListTablesGetText
OnGetImageIndex = ListTablesGetImageIndex
OnGetHint = AnyGridGetHint
OnGetNodeDataSize = ListTablesGetNodeDataSize
OnHeaderClick = AnyGridHeaderClick
OnHeaderDraggedOut = AnyGridHeaderDraggedOut
OnInitNode = ListTablesInitNode
OnKeyPress = ListTablesKeyPress
OnNewText = ListTablesNewText
end end
end end
object tabEditor: TTabSheet object tabEditor: TTabSheet

View File

@ -11,7 +11,7 @@ uses
SynGutter, SynGutterChanges, SynGutterCodeFolding, SynGutterLineNumber, SynGutter, SynGutterChanges, SynGutterCodeFolding, SynGutterLineNumber,
SynGutterMarks, StrUtils, laz.VirtualTrees, RegExpr, Buttons, StdCtrls, SynGutterMarks, StrUtils, laz.VirtualTrees, RegExpr, Buttons, StdCtrls,
fphttpclient, Math, LCLIntf, Generics.Collections, Generics.Defaults, fphttpclient, Math, LCLIntf, Generics.Collections, Generics.Defaults,
opensslsockets, StdActns, Clipbrd, Types, dbconnection, dbstructures, opensslsockets, StdActns, Clipbrd, Types, LCLType, dbconnection, dbstructures,
dbstructures.mysql, generic_types, apphelpers; dbstructures.mysql, generic_types, apphelpers;
@ -838,7 +838,7 @@ type
procedure actWebbrowse(Sender: TObject); procedure actWebbrowse(Sender: TObject);
procedure popupQueryPopup(Sender: TObject); procedure popupQueryPopup(Sender: TObject);
procedure btnDataClick(Sender: TObject); procedure btnDataClick(Sender: TObject);
//procedure ListTablesChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure ListTablesChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
//procedure SynCompletionProposalAfterCodeCompletion(Sender: TObject; //procedure SynCompletionProposalAfterCodeCompletion(Sender: TObject;
// const Value: String; Shift: TShiftState; Index: Integer; EndToken: Char); // const Value: String; Shift: TShiftState; Index: Integer; EndToken: Char);
//procedure SynCompletionProposalCodeCompletion(Sender: TObject; //procedure SynCompletionProposalCodeCompletion(Sender: TObject;
@ -856,8 +856,8 @@ type
procedure LogSQL(Msg: String; Category: TDBLogCategory=lcInfo; Connection: TDBConnection=nil); procedure LogSQL(Msg: String; Category: TDBLogCategory=lcInfo; Connection: TDBConnection=nil);
procedure KillProcess(Sender: TObject); procedure KillProcess(Sender: TObject);
procedure TimerHostUptimeTimer(Sender: TObject); procedure TimerHostUptimeTimer(Sender: TObject);
//procedure ListTablesNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure ListTablesNewText(Sender: TBaseVirtualTree; Node: PVirtualNode;
// Column: TColumnIndex; NewText: String); Column: TColumnIndex; NewText: String);
procedure TimerConnectedTimer(Sender: TObject); procedure TimerConnectedTimer(Sender: TObject);
procedure QuickFilterClick(Sender: TObject); procedure QuickFilterClick(Sender: TObject);
procedure AutoRefreshSetInterval(Sender: TObject); procedure AutoRefreshSetInterval(Sender: TObject);
@ -886,8 +886,8 @@ type
// TColumnIndex; TextType: TVSTTextType; var CellText: String); // TColumnIndex; TextType: TVSTTextType; var CellText: String);
//procedure DataGridHeaderClick(Sender: TVTHeader; HitInfo: TVTHeaderHitInfo); //procedure DataGridHeaderClick(Sender: TVTHeader; HitInfo: TVTHeaderHitInfo);
//procedure AnyGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); //procedure AnyGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
//procedure AnyGridMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; procedure AnyGridMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer;
// MousePos: TPoint; var Handled: Boolean); MousePos: TPoint; var Handled: Boolean);
//procedure AnyGridNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: //procedure AnyGridNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column:
// TColumnIndex; NewText: String); // TColumnIndex; NewText: String);
//procedure AnyGridPaintText(Sender: TBaseVirtualTree; const TargetCanvas: //procedure AnyGridPaintText(Sender: TBaseVirtualTree; const TargetCanvas:
@ -901,8 +901,8 @@ type
PVirtualNode; Column: TColumnIndex; var Result: Integer); PVirtualNode; Column: TColumnIndex; var Result: Integer);
procedure AnyGridHeaderDraggedOut(Sender: TVTHeader; Column: TColumnIndex; procedure AnyGridHeaderDraggedOut(Sender: TVTHeader; Column: TColumnIndex;
DropPosition: TPoint); DropPosition: TPoint);
//procedure AnyGridIncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; const SearchText: String; procedure AnyGridIncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; const SearchText: String;
// var Result: Integer); var Result: Integer);
procedure SetMainTab(Page: TTabSheet); procedure SetMainTab(Page: TTabSheet);
procedure DBtreeFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure DBtreeFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex); Column: TColumnIndex);
@ -927,9 +927,9 @@ type
procedure AnyGridGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure AnyGridGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; var LineBreakStyle: TVTTooltipLineBreakStyle; var Column: TColumnIndex; var LineBreakStyle: TVTTooltipLineBreakStyle; var
HintText: String); HintText: String);
//procedure ListTablesBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; procedure ListTablesBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
// Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect; Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect;
// var ContentRect: TRect); var ContentRect: TRect);
procedure ListProcessesFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex); procedure ListProcessesFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex);
procedure editFilterVTChange(Sender: TObject); procedure editFilterVTChange(Sender: TObject);
procedure ListVariablesDblClick(Sender: TObject); procedure ListVariablesDblClick(Sender: TObject);
@ -955,14 +955,14 @@ type
procedure HostListBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; procedure HostListBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect; Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect;
var ContentRect: TRect); var ContentRect: TRect);
//procedure ListTablesBeforePaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas); procedure ListTablesBeforePaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas);
//procedure ListTablesGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; procedure ListTablesGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind;
// Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: TImageIndex); Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: TImageIndex);
//procedure ListTablesGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer); procedure ListTablesGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
//procedure ListTablesGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure ListTablesGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
// Column: TColumnIndex; TextType: TVSTTextType; var CellText: string); Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
//procedure ListTablesInitNode(Sender: TBaseVirtualTree; ParentNode, procedure ListTablesInitNode(Sender: TBaseVirtualTree; ParentNode,
// Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
procedure AnyGridAfterPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas); procedure AnyGridAfterPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas);
procedure actFollowForeignKeyExecute(Sender: TObject); procedure actFollowForeignKeyExecute(Sender: TObject);
procedure actCopyOrCutExecute(Sender: TObject); procedure actCopyOrCutExecute(Sender: TObject);
@ -970,10 +970,10 @@ type
procedure actSelectAllExecute(Sender: TObject); procedure actSelectAllExecute(Sender: TObject);
//procedure EnumerateRecentFilters; //procedure EnumerateRecentFilters;
procedure LoadRecentFilter(Sender: TObject); procedure LoadRecentFilter(Sender: TObject);
//procedure ListTablesEditing(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure ListTablesEditing(Sender: TBaseVirtualTree; Node: PVirtualNode;
// Column: TColumnIndex; var Allowed: Boolean); Column: TColumnIndex; var Allowed: Boolean);
procedure DBtreeChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure DBtreeChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
//procedure ListTablesDblClick(Sender: TObject); procedure ListTablesDblClick(Sender: TObject);
//procedure panelTopDblClick(Sender: TObject); //procedure panelTopDblClick(Sender: TObject);
//procedure PageControlMainMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); //procedure PageControlMainMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure actNewQueryTabExecute(Sender: TObject); procedure actNewQueryTabExecute(Sender: TObject);
@ -1007,7 +1007,7 @@ type
//procedure SynMemoQueryPaintTransient(Sender: TObject; Canvas: TCanvas; //procedure SynMemoQueryPaintTransient(Sender: TObject; Canvas: TCanvas;
// TransientType: TTransientType); // TransientType: TTransientType);
procedure actQueryFindAgainExecute(Sender: TObject); procedure actQueryFindAgainExecute(Sender: TObject);
//procedure AnyGridScroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer); procedure AnyGridScroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer);
procedure lblExplainProcessClick(Sender: TObject); procedure lblExplainProcessClick(Sender: TObject);
procedure actDataShowNextExecute(Sender: TObject); procedure actDataShowNextExecute(Sender: TObject);
procedure actDataShowAllExecute(Sender: TObject); procedure actDataShowAllExecute(Sender: TObject);
@ -1015,7 +1015,7 @@ type
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
//procedure AnyGridFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; //procedure AnyGridFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode;
// Column: TColumnIndex); // Column: TColumnIndex);
//procedure ListTablesKeyPress(Sender: TObject; var Key: Char); procedure ListTablesKeyPress(Sender: TObject; var Key: Char);
procedure DBtreeFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure DBtreeFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure ListDatabasesBeforePaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas); procedure ListDatabasesBeforePaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas);
procedure ListDatabasesGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure ListDatabasesGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
@ -2922,8 +2922,8 @@ begin
m := SynMemoSQLLog; m := SynMemoSQLLog;
//m.Gutter.LineNumberStart := m.Gutter.LineNumberStart + m.Lines.Count; //m.Gutter.LineNumberStart := m.Gutter.LineNumberStart + m.Lines.Count;
end else begin end else begin
//m := SynMemoFilter; m := SynMemoFilter;
//editFilterSearch.Clear; editFilterSearch.Clear;
end; end;
m.SelectAll; m.SelectAll;
m.SelText := ''; m.SelText := '';
@ -2934,9 +2934,9 @@ begin
QueryTabs.ActiveTab.Memo.Modified := False; QueryTabs.ActiveTab.Memo.Modified := False;
QueryTabs.ActiveTab.Uid := ''; QueryTabs.ActiveTab.Uid := '';
end; end;
//if m = SynMemoFilter then begin if m = SynMemoFilter then begin
// InvalidateVT(DataGrid, VTREE_NOTLOADED_PURGECACHE, False); InvalidateVT(DataGrid, VTREE_NOTLOADED_PURGECACHE, False);
//end; end;
end; end;
@ -2996,7 +2996,7 @@ var
begin begin
// Mark focused column as UNIX timestamp column // Mark focused column as UNIX timestamp column
AppSettings.SessionPath := GetRegKeyTable; AppSettings.SessionPath := GetRegKeyTable;
//GridColumn := DataGrid.Header.Columns[DataGrid.FocusedColumn]; GridColumn := DataGrid.Header.Columns[DataGrid.FocusedColumn];
FocusedColumnName := GridColumn.Text; FocusedColumnName := GridColumn.Text;
i := SelectedTableTimestampColumns.IndexOf(FocusedColumnName); i := SelectedTableTimestampColumns.IndexOf(FocusedColumnName);
if i > -1 then if i > -1 then
@ -3706,7 +3706,7 @@ begin
Exit; Exit;
Screen.Cursor := crHourGlass; Screen.Cursor := crHourGlass;
try try
{ShowStatusMsg(_('Loading contents into image viewer ...')); ShowStatusMsg(_('Loading contents into image viewer ...'));
lblPreviewTitle.Caption := _('Loading ...'); lblPreviewTitle.Caption := _('Loading ...');
lblPreviewTitle.Repaint; lblPreviewTitle.Repaint;
imgPreview.Picture := nil; imgPreview.Picture := nil;
@ -3734,7 +3734,7 @@ begin
Graphic := TBitmap.Create; Graphic := TBitmap.Create;
end else if Copy(Header, 2, 3) = 'PNG' then begin end else if Copy(Header, 2, 3) = 'PNG' then begin
ImgType := 'PNG'; ImgType := 'PNG';
Graphic := TPngImage.Create; Graphic := TPortableNetworkGraphic.Create;
end; end;
if Assigned(Graphic) then begin if Assigned(Graphic) then begin
try try
@ -3750,9 +3750,9 @@ begin
end; end;
FreeAndNil(ContentStream); FreeAndNil(ContentStream);
end else end else
lblPreviewTitle.Caption := f_('No image detected, %s', [FormatByteNumber(StrLen)]);} lblPreviewTitle.Caption := f_('No image detected, %s', [FormatByteNumber(StrLen)]);
finally finally
//lblPreviewTitle.Hint := lblPreviewTitle.Caption; lblPreviewTitle.Hint := lblPreviewTitle.Caption;
ShowStatusMsg; ShowStatusMsg;
Screen.Cursor := crDefault; Screen.Cursor := crDefault;
end; end;
@ -6342,7 +6342,7 @@ begin
end; end;
{procedure TMainForm.ListTablesBeforePaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas); procedure TMainForm.ListTablesBeforePaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas);
var var
i, NumObj: Integer; i, NumObj: Integer;
Obj: TDBObject; Obj: TDBObject;
@ -6408,10 +6408,10 @@ begin
ShowStatusMsg; ShowStatusMsg;
ValidateControls(Self); ValidateControls(Self);
Screen.Cursor := crDefault; Screen.Cursor := crDefault;
end;} end;
{procedure TMainForm.ListTablesGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure TMainForm.ListTablesGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: TImageIndex); Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: TImageIndex);
var var
Obj: PDBObject; Obj: PDBObject;
@ -6425,17 +6425,17 @@ begin
ikOverlay: ikOverlay:
ImageIndex := Obj.OverlayImageIndex; ImageIndex := Obj.OverlayImageIndex;
end; end;
end;} end;
{procedure TMainForm.ListTablesGetNodeDataSize(Sender: TBaseVirtualTree; procedure TMainForm.ListTablesGetNodeDataSize(Sender: TBaseVirtualTree;
var NodeDataSize: Integer); var NodeDataSize: Integer);
begin begin
NodeDataSize := SizeOf(TDBObject); NodeDataSize := SizeOf(TDBObject);
end;} end;
{procedure TMainForm.ListTablesGetText(Sender: TBaseVirtualTree; procedure TMainForm.ListTablesGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: string); var CellText: string);
var var
@ -6471,10 +6471,10 @@ begin
17: CellText := Obj.CreateOptions; 17: CellText := Obj.CreateOptions;
18: CellText := Obj.ObjType; 18: CellText := Obj.ObjType;
end; end;
end;} end;
{procedure TMainForm.ListTablesInitNode(Sender: TBaseVirtualTree; ParentNode, procedure TMainForm.ListTablesInitNode(Sender: TBaseVirtualTree; ParentNode,
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var var
Obj: PDBObject; Obj: PDBObject;
@ -6490,14 +6490,14 @@ begin
Obj^ := nil; Obj^ := nil;
LogSQL('InitNode on '+Sender.Name+' failed, due to no connection or no database set. Database: "'+Conn.Database+'"', lcDebug); LogSQL('InitNode on '+Sender.Name+' failed, due to no connection or no database set. Database: "'+Conn.Database+'"', lcDebug);
end; end;
end;} end;
{*** {***
Selection in ListTables is changing Selection in ListTables is changing
} }
{procedure TMainForm.ListTablesChange(Sender: TBaseVirtualTree; Node: procedure TMainForm.ListTablesChange(Sender: TBaseVirtualTree; Node:
PVirtualNode); PVirtualNode);
var var
Msg: String; Msg: String;
@ -6508,7 +6508,7 @@ begin
else else
Msg := ''; Msg := '';
ShowStatusMsg(Msg, 1) ShowStatusMsg(Msg, 1)
end;} end;
{*** {***
@ -7298,7 +7298,7 @@ begin
end; end;
{procedure TMainForm.ListTablesEditing(Sender: TBaseVirtualTree; procedure TMainForm.ListTablesEditing(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean); Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean);
var var
Obj: PDBObject; Obj: PDBObject;
@ -7308,13 +7308,13 @@ begin
Obj := Sender.GetNodeData(Node); Obj := Sender.GetNodeData(Node);
Allowed := Obj.NodeType in [lntTable, lntView]; Allowed := Obj.NodeType in [lntTable, lntView];
end; end;
end;} end;
{*** {***
Rename table after checking the new name for invalid characters Rename table after checking the new name for invalid characters
} }
{procedure TMainForm.ListTablesNewText(Sender: TBaseVirtualTree; Node: procedure TMainForm.ListTablesNewText(Sender: TBaseVirtualTree; Node:
PVirtualNode; Column: TColumnIndex; NewText: String); PVirtualNode; Column: TColumnIndex; NewText: String);
var var
Obj: PDBObject; Obj: PDBObject;
@ -7351,7 +7351,7 @@ begin
on E:EDbError do on E:EDbError do
ErrorDialog(E.Message); ErrorDialog(E.Message);
end; end;
end;} end;
procedure TMainForm.TimerConnectedTimer(Sender: TObject); procedure TMainForm.TimerConnectedTimer(Sender: TObject);
@ -8979,7 +8979,7 @@ begin
end; end;
{procedure TMainForm.AnyGridIncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure TMainForm.AnyGridIncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode;
const SearchText: String; var Result: Integer); const SearchText: String; var Result: Integer);
var var
CellText: String; CellText: String;
@ -8991,10 +8991,10 @@ begin
Exit; Exit;
CellText := VT.Text[Node, VT.FocusedColumn]; CellText := VT.Text[Node, VT.FocusedColumn];
Result := StrLIComp(PChar(CellText), PChar(SearchText), Length(SearchText)); Result := StrLIComp(PChar(CellText), PChar(SearchText), Length(SearchText));
end;} end;
{procedure TMainForm.ListTablesBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; procedure TMainForm.ListTablesBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect; Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect;
var ContentRect: TRect); var ContentRect: TRect);
var var
@ -9010,7 +9010,7 @@ begin
2: PaintColorBar(Obj.Size, FDBObjectsMaxSize, TargetCanvas, CellRect); 2: PaintColorBar(Obj.Size, FDBObjectsMaxSize, TargetCanvas, CellRect);
end; end;
end; end;
end;} end;
function TMainForm.GetAlternatingRowBackground(Node: PVirtualNode): TColor; function TMainForm.GetAlternatingRowBackground(Node: PVirtualNode): TColor;
@ -10617,7 +10617,7 @@ begin
end; end;
{procedure TMainForm.AnyGridMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; procedure TMainForm.AnyGridMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint; var Handled: Boolean); MousePos: TPoint; var Handled: Boolean);
var var
VT: TVirtualStringTree; VT: TVirtualStringTree;
@ -10637,7 +10637,7 @@ begin
Handled := True; Handled := True;
end; end;
end; end;
end else if KeyPressed(VK_CONTROL) then begin end else if ssCtrl in GetKeyShiftState then begin
// Change font size with MouseWheel // Change font size with MouseWheel
if AppSettings.ReadBool(asWheelZoom) then begin if AppSettings.ReadBool(asWheelZoom) then begin
NewFontSize := VT.Font.Size; NewFontSize := VT.Font.Size;
@ -10655,7 +10655,7 @@ begin
VT.OffsetX := VT.OffsetX + WheelDelta; VT.OffsetX := VT.OffsetX + WheelDelta;
Handled := True; Handled := True;
end; end;
end;} end;
{** {**
@ -12225,15 +12225,15 @@ begin
end; end;
{procedure TMainForm.ListTablesKeyPress(Sender: TObject; var Key: Char); procedure TMainForm.ListTablesKeyPress(Sender: TObject; var Key: Char);
begin begin
// Open object editor on pressing Enter // Open object editor on pressing Enter
if Ord(Key) = VK_RETURN then if Ord(Key) = VK_RETURN then
ListTables.OnDblClick(Sender); ListTables.OnDblClick(Sender);
end;} end;
{procedure TMainForm.ListTablesDblClick(Sender: TObject); procedure TMainForm.ListTablesDblClick(Sender: TObject);
var var
Obj: PDBObject; Obj: PDBObject;
vt: TVirtualStringTree; vt: TVirtualStringTree;
@ -12246,7 +12246,7 @@ begin
// Normally the editor tab is active now, but not when same node was focused before // Normally the editor tab is active now, but not when same node was focused before
SetMainTab(tabEditor); SetMainTab(tabEditor);
end; end;
end;} end;
procedure TMainForm.actNewQueryTabExecute(Sender: TObject); procedure TMainForm.actNewQueryTabExecute(Sender: TObject);
@ -13710,14 +13710,14 @@ begin
end; end;
{procedure TMainForm.AnyGridScroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer); procedure TMainForm.AnyGridScroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer);
begin begin
// A tree gets scrolled only when the mouse is over it - see FormMouseWheel // A tree gets scrolled only when the mouse is over it - see FormMouseWheel
// Our home brewn cell editors do not reposition when the underlying tree scrolls. // Our home brewn cell editors do not reposition when the underlying tree scrolls.
// To avoid confusion, terminate editors then. // To avoid confusion, terminate editors then.
if Sender.IsEditing and (DeltaX=0) then if Sender.IsEditing and (DeltaX=0) then
Sender.EndEditNode; Sender.EndEditNode;
end;} end;
procedure TMainForm.lblExplainProcessClick(Sender: TObject); procedure TMainForm.lblExplainProcessClick(Sender: TObject);