Issue #2131: add grid editor links unit

This commit is contained in:
Ansgar Becker
2025-04-21 20:40:14 +02:00
parent a4daba9b00
commit ed8c248efa
9 changed files with 1932 additions and 71 deletions

View File

@ -328,6 +328,10 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
</Unit> </Unit>
<Unit>
<Filename Value="source\grideditlinks.pas"/>
<IsPartOfProject Value="True"/>
</Unit>
</Units> </Units>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -21,7 +21,7 @@ uses
exportgrid, usermanager, selectdbobject, reformatter, searchreplace, exportgrid, usermanager, selectdbobject, reformatter, searchreplace,
connections, jsonregistry, sqlhelp, updatecheck, insertfiles, texteditor, connections, jsonregistry, sqlhelp, updatecheck, insertfiles, texteditor,
customize_highlighter, preferences, table_editor, view, routine_editor, customize_highlighter, preferences, table_editor, view, routine_editor,
trigger_editor, event_editor, tabletools, bineditor; trigger_editor, event_editor, tabletools, bineditor, grideditlinks;
{$R *.res} {$R *.res}
{.$R resources.rc} {.$R resources.rc}

View File

@ -238,7 +238,7 @@ type
implementation implementation
uses Main, apphelpers, dbstructures.sqlite; uses Main, apphelpers, dbstructures.sqlite, grideditlinks;
{$I const.inc} {$I const.inc}
@ -870,7 +870,7 @@ procedure Tconnform.ListSessionsCreateEditor(Sender: TBaseVirtualTree; Node: PVi
Column: TColumnIndex; out EditLink: IVTEditLink); Column: TColumnIndex; out EditLink: IVTEditLink);
begin begin
// Use our own text editor to rename a session // Use our own text editor to rename a session
//EditLink := TInplaceEditorLink.Create(Sender as TVirtualStringTree, True, nil); EditLink := TInplaceEditorLink.Create(Sender as TVirtualStringTree, True, nil);
end; end;

View File

@ -8,7 +8,7 @@ uses
Classes, SysUtils, Forms, Types, StdCtrls, Clipbrd, apphelpers, Classes, SysUtils, Forms, Types, StdCtrls, Clipbrd, apphelpers,
Graphics, Dialogs, ImgList, ComCtrls, Generics.Collections, Generics.Defaults, Graphics, Dialogs, ImgList, ComCtrls, Generics.Collections, Generics.Defaults,
ExtCtrls, laz.VirtualTrees, RegExpr, Controls, EditBtn, Menus, ExtCtrls, laz.VirtualTrees, RegExpr, Controls, EditBtn, Menus,
GraphUtil, Math; GraphUtil, Math, LCLIntf;
type type
// Form with a sizegrip in the lower right corner, without the need for a statusbar // Form with a sizegrip in the lower right corner, without the need for a statusbar
@ -37,7 +37,7 @@ type
class function ScaleSize(x: Extended; Control: TControl): Integer; overload; class function ScaleSize(x: Extended; Control: TControl): Integer; overload;
class procedure PageControlTabHighlight(PageControl: TPageControl); class procedure PageControlTabHighlight(PageControl: TPageControl);
property PixelsPerInchDesigned: Integer read FPixelsPerInchDesigned; property PixelsPerInchDesigned: Integer read FPixelsPerInchDesigned;
procedure ShowPopup(ClickedControl: TControl; PopupMenu: TPopupMenu); class procedure ShowPopup(ClickedControl: TControl; PopupMenu: TPopupMenu);
end; end;
// Modern file-open-dialog with high DPI support and encoding selector // Modern file-open-dialog with high DPI support and encoding selector
@ -93,7 +93,7 @@ type
property OnExit: TNotifyEvent read FOnExit write FOnExit; property OnExit: TNotifyEvent read FOnExit write FOnExit;
end;} end;}
{TExtComboBox = class(TComboBox) TExtComboBox = class(TComboBox)
private private
FcbHintIndex: Integer; FcbHintIndex: Integer;
FHintWindow: THintWindow; FHintWindow: THintWindow;
@ -102,7 +102,7 @@ type
procedure DropDown; override; procedure DropDown; override;
procedure CloseUp; override; procedure CloseUp; override;
procedure InitiateAction; override; procedure InitiateAction; override;
end;} end;
{TExtHintWindow = class(THintWindow) {TExtHintWindow = class(THintWindow)
private private
@ -476,7 +476,7 @@ begin
end;; end;;
end; end;
procedure TExtForm.ShowPopup(ClickedControl: TControl; PopupMenu: TPopupMenu); class procedure TExtForm.ShowPopup(ClickedControl: TControl; PopupMenu: TPopupMenu);
begin begin
PopupMenu.Popup(ClickedControl.ClientOrigin.X, ClickedControl.ClientOrigin.Y + ClickedControl.Height); PopupMenu.Popup(ClickedControl.ClientOrigin.X, ClickedControl.ClientOrigin.Y + ClickedControl.Height);
end; end;
@ -696,7 +696,7 @@ end;}
{ TExtComboBox } { TExtComboBox }
{procedure TExtComboBox.Change; procedure TExtComboBox.Change;
var var
P: TPoint; P: TPoint;
HintRect: TRect; HintRect: TRect;
@ -747,7 +747,7 @@ begin
FcbHintIndex := ItemIndex; FcbHintIndex := ItemIndex;
Change; Change;
end; end;
end;} end;

1857
source/grideditlinks.pas Normal file

File diff suppressed because it is too large Load Diff

View File

@ -99,7 +99,7 @@ type
implementation implementation
uses main; uses main, grideditlinks;
const const
ColColname = 0; ColColname = 0;
@ -260,12 +260,12 @@ procedure TfrmInsertFiles.ListColumnsCreateEditor(Sender: TBaseVirtualTree; Node
Column: TColumnIndex; out EditLink: IVTEditLink); Column: TColumnIndex; out EditLink: IVTEditLink);
var var
Grid: TVirtualStringTree; Grid: TVirtualStringTree;
//EnumEditor: TEnumEditorLink; EnumEditor: TEnumEditorLink;
begin begin
// Start cell editor // Start cell editor
Grid := Sender as TVirtualStringTree; Grid := Sender as TVirtualStringTree;
if Column = ColValue then begin if Column = ColValue then begin
{EnumEditor := TEnumEditorLink.Create(Grid, True, nil); EnumEditor := TEnumEditorLink.Create(Grid, True, nil);
EnumEditor.AllowCustomText := True; EnumEditor.AllowCustomText := True;
EnumEditor.ValueList := TStringList.Create; EnumEditor.ValueList := TStringList.Create;
EnumEditor.ValueList.Text := 'NULL'+CRLF+ EnumEditor.ValueList.Text := 'NULL'+CRLF+
@ -281,7 +281,7 @@ begin
'UPPER(''%filenname%'')'+CRLF+ 'UPPER(''%filenname%'')'+CRLF+
'UNIX_TIMESTAMP(''%filedatetime%'')'+CRLF+ 'UNIX_TIMESTAMP(''%filedatetime%'')'+CRLF+
'ENCODE(''%filename%'', ''password'')'; 'ENCODE(''%filename%'', ''password'')';
EditLink := EnumEditor;} EditLink := EnumEditor;
end; end;
end; end;

View File

@ -1421,7 +1421,7 @@ implementation
uses uses
FileInfo, winpeimagereader, elfreader, machoreader, About, data_sorting, column_selection, loaddata, editvar, FileInfo, winpeimagereader, elfreader, machoreader, About, data_sorting, column_selection, loaddata, editvar,
copytable, csv_detector, exportgrid, usermanager, selectdbobject, reformatter, connections, sqlhelp, updatecheck, copytable, csv_detector, exportgrid, usermanager, selectdbobject, reformatter, connections, sqlhelp, updatecheck,
insertfiles, texteditor, preferences, table_editor, view, routine_editor, trigger_editor, event_editor; insertfiles, texteditor, preferences, table_editor, view, routine_editor, trigger_editor, event_editor, grideditlinks;
{$R *.lfm} {$R *.lfm}
@ -10848,11 +10848,11 @@ const
ForeignItemsLimit: Integer = 10000; ForeignItemsLimit: Integer = 10000;
var var
VT: TVirtualStringTree; VT: TVirtualStringTree;
{HexEditor: THexEditorLink; HexEditor: THexEditorLink;
DateTimeEditor: TDateTimeEditorLink; DateTimeEditor: TDateTimeEditorLink;
EnumEditor: TEnumEditorLink; EnumEditor: TEnumEditorLink;
SetEditor: TSetEditorLink; SetEditor: TSetEditorLink;
InplaceEditor: TInplaceEditorLink;} InplaceEditor: TInplaceEditorLink;
TypeCat: TDBDatatypeCategoryIndex; TypeCat: TDBDatatypeCategoryIndex;
ForeignKey: TForeignKey; ForeignKey: TForeignKey;
TblColumn: TTableColumn; TblColumn: TTableColumn;
@ -10912,7 +10912,7 @@ begin
ForeignResults := Conn.GetResults(SQL); ForeignResults := Conn.GetResults(SQL);
if ForeignResults.RecordCount < ForeignItemsLimit then begin if ForeignResults.RecordCount < ForeignItemsLimit then begin
{EnumEditor := TEnumEditorLink.Create(VT, AllowEdit, TblColumn); EnumEditor := TEnumEditorLink.Create(VT, AllowEdit, TblColumn);
EditLink := EnumEditor; EditLink := EnumEditor;
DisplayHex := (not actBlobAsText.Checked) and (ForeignResults.DataType(0).Category in [dtcBinary, dtcSpatial]); DisplayHex := (not actBlobAsText.Checked) and (ForeignResults.DataType(0).Category in [dtcBinary, dtcSpatial]);
while not ForeignResults.Eof do begin while not ForeignResults.Eof do begin
@ -10927,7 +10927,7 @@ begin
EnumEditor.DisplayList.Add(ForeignResults.Col(0)+': '+ForeignResults.Col(1)); EnumEditor.DisplayList.Add(ForeignResults.Col(0)+': '+ForeignResults.Col(1));
end; end;
ForeignResults.Next; ForeignResults.Next;
end;} end;
end else begin end else begin
LogSQL(f_('Connected table has too many rows. Foreign key drop-down is limited to %d items.', [ForeignItemsLimit]), lcInfo); LogSQL(f_('Connected table has too many rows. Foreign key drop-down is limited to %d items.', [ForeignItemsLimit]), lcInfo);
end; end;
@ -10941,11 +10941,11 @@ begin
FGridEditFunctionMode := FGridEditFunctionMode or Results.IsFunction(ResultCol); FGridEditFunctionMode := FGridEditFunctionMode or Results.IsFunction(ResultCol);
if FGridEditFunctionMode then begin if FGridEditFunctionMode then begin
{EnumEditor := TEnumEditorLink.Create(VT, AllowEdit, TblColumn); EnumEditor := TEnumEditorLink.Create(VT, AllowEdit, TblColumn);
for SQLFunc in Conn.SQLFunctions do for SQLFunc in Conn.SQLFunctions do
EnumEditor.ValueList.Add(SQLFunc.Name + SQLFunc.Declaration); EnumEditor.ValueList.Add(SQLFunc.Name + SQLFunc.Declaration);
EnumEditor.AllowCustomText := True; EnumEditor.AllowCustomText := True;
EditLink := EnumEditor;} EditLink := EnumEditor;
end; end;
TypeCat := Results.DataType(ResultCol).Category; TypeCat := Results.DataType(ResultCol).Category;
@ -10953,20 +10953,20 @@ begin
if Assigned(EditLink) then if Assigned(EditLink) then
// Editor was created above, do nothing now // Editor was created above, do nothing now
else if (Results.DataType(ResultCol).Index in [dbdtEnum, dbdtBool]) and AppSettings.ReadBool(asFieldEditorEnum) then begin else if (Results.DataType(ResultCol).Index in [dbdtEnum, dbdtBool]) and AppSettings.ReadBool(asFieldEditorEnum) then begin
{EnumEditor := TEnumEditorLink.Create(VT, AllowEdit, TblColumn); EnumEditor := TEnumEditorLink.Create(VT, AllowEdit, TblColumn);
EnumEditor.ValueList := Results.ValueList(ResultCol); EnumEditor.ValueList := Results.ValueList(ResultCol);
EditLink := EnumEditor;} EditLink := EnumEditor;
end else if (TypeCat = dtcText) or ((TypeCat in [dtcBinary, dtcSpatial]) and actBlobAsText.Checked) then begin end else if (TypeCat = dtcText) or ((TypeCat in [dtcBinary, dtcSpatial]) and actBlobAsText.Checked) then begin
{InplaceEditor := TInplaceEditorLink.Create(VT, AllowEdit, TblColumn); InplaceEditor := TInplaceEditorLink.Create(VT, AllowEdit, TblColumn);
InplaceEditor.MaxLength := Results.MaxLength(ResultCol); InplaceEditor.MaxLength := Results.MaxLength(ResultCol);
InplaceEditor.TitleText := Results.ColumnOrgNames[ResultCol]; InplaceEditor.TitleText := Results.ColumnOrgNames[ResultCol];
InplaceEditor.ButtonVisible := True; InplaceEditor.ButtonVisible := True;
EditLink := InplaceEditor;} EditLink := InplaceEditor;
end else if (TypeCat in [dtcBinary, dtcSpatial]) and AppSettings.ReadBool(asFieldEditorBinary) then begin end else if (TypeCat in [dtcBinary, dtcSpatial]) and AppSettings.ReadBool(asFieldEditorBinary) then begin
{HexEditor := THexEditorLink.Create(VT, AllowEdit, TblColumn); HexEditor := THexEditorLink.Create(VT, AllowEdit, TblColumn);
HexEditor.MaxLength := Results.MaxLength(ResultCol); HexEditor.MaxLength := Results.MaxLength(ResultCol);
HexEditor.TitleText := Results.ColumnOrgNames[ResultCol]; HexEditor.TitleText := Results.ColumnOrgNames[ResultCol];
EditLink := HexEditor;} EditLink := HexEditor;
end else if (TypeCat = dtcTemporal) end else if (TypeCat = dtcTemporal)
and AppSettings.ReadBool(asFieldEditorDatetime) and AppSettings.ReadBool(asFieldEditorDatetime)
and Assigned(TblColumn) // Editor crashes without a column object (on joins), see #1024 and Assigned(TblColumn) // Editor crashes without a column object (on joins), see #1024
@ -10988,22 +10988,22 @@ begin
NowText := NowText + '.' + StringOfChar('0', MicroSecondsPrecision); NowText := NowText + '.' + StringOfChar('0', MicroSecondsPrecision);
VT.Text[Node, Column] := NowText; VT.Text[Node, Column] := NowText;
end; end;
{DateTimeEditor := TDateTimeEditorLink.Create(VT, AllowEdit, TblColumn); DateTimeEditor := TDateTimeEditorLink.Create(VT, AllowEdit, TblColumn);
EditLink := DateTimeEditor;} EditLink := DateTimeEditor;
end else if AppSettings.ReadBool(asFieldEditorDatetime) end else if AppSettings.ReadBool(asFieldEditorDatetime)
and HandleUnixTimestampColumn(Sender, Column) and HandleUnixTimestampColumn(Sender, Column)
and Assigned(TblColumn) // see above and Assigned(TblColumn) // see above
then begin then begin
{DateTimeEditor := TDateTimeEditorLink.Create(VT, AllowEdit, TblColumn); DateTimeEditor := TDateTimeEditorLink.Create(VT, AllowEdit, TblColumn);
EditLink := DateTimeEditor;} EditLink := DateTimeEditor;
end else if (Results.DataType(ResultCol).Index = dbdtSet) and AppSettings.ReadBool(asFieldEditorSet) then begin end else if (Results.DataType(ResultCol).Index = dbdtSet) and AppSettings.ReadBool(asFieldEditorSet) then begin
{SetEditor := TSetEditorLink.Create(VT, AllowEdit, TblColumn); SetEditor := TSetEditorLink.Create(VT, AllowEdit, TblColumn);
SetEditor.ValueList := Results.ValueList(ResultCol); SetEditor.ValueList := Results.ValueList(ResultCol);
EditLink := SetEditor;} EditLink := SetEditor;
end else begin end else begin
{InplaceEditor := TInplaceEditorLink.Create(VT, AllowEdit, TblColumn); InplaceEditor := TInplaceEditorLink.Create(VT, AllowEdit, TblColumn);
InplaceEditor.ButtonVisible := False; InplaceEditor.ButtonVisible := False;
EditLink := InplaceEditor;} EditLink := InplaceEditor;
end; end;
Sender.FocusedNode := Node; Sender.FocusedNode := Node;
Sender.FocusedColumn := Column; Sender.FocusedColumn := Column;
@ -14541,13 +14541,13 @@ end;
procedure TMainForm.treeQueryHelpersCreateEditor(Sender: TBaseVirtualTree; procedure TMainForm.treeQueryHelpersCreateEditor(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink); Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
var var
//InplaceEditor: TInplaceEditorLink; InplaceEditor: TInplaceEditorLink;
VT: TVirtualStringTree; VT: TVirtualStringTree;
begin begin
VT := Sender as TVirtualStringTree; VT := Sender as TVirtualStringTree;
//InplaceEditor := TInplaceEditorLink.Create(VT, True, nil); InplaceEditor := TInplaceEditorLink.Create(VT, True, nil);
//InplaceEditor.ButtonVisible := true; InplaceEditor.ButtonVisible := true;
//EditLink := InplaceEditor; EditLink := InplaceEditor;
end; end;

View File

@ -96,7 +96,7 @@ type
implementation implementation
uses main, dbstructures, dbstructures.mysql; uses main, dbstructures, dbstructures.mysql, grideditlinks;
{$R *.lfm} {$R *.lfm}
@ -389,14 +389,14 @@ procedure TfrmRoutineEditor.listParametersCreateEditor(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink); Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
var var
VT: TLazVirtualStringTree; VT: TLazVirtualStringTree;
//EnumEditor: TEnumEditorLink; EnumEditor: TEnumEditorLink;
Datatype: String; Datatype: String;
DBDatatype: TDBDatatype; DBDatatype: TDBDatatype;
begin begin
VT := Sender as TLazVirtualStringTree; VT := Sender as TLazVirtualStringTree;
if Column = 1 then if Column = 1 then
EditLink := TStringEditLink.Create EditLink := TStringEditLink.Create
{else if Column = 2 then begin else if Column = 2 then begin
EnumEditor := TEnumEditorLink.Create(VT, True, nil); EnumEditor := TEnumEditorLink.Create(VT, True, nil);
EnumEditor.AllowCustomText := True; EnumEditor.AllowCustomText := True;
EnumEditor.ValueList := TStringList.Create; EnumEditor.ValueList := TStringList.Create;
@ -414,7 +414,7 @@ begin
EnumEditor.ValueList.Add('OUT'); EnumEditor.ValueList.Add('OUT');
EnumEditor.ValueList.Add('INOUT'); EnumEditor.ValueList.Add('INOUT');
EditLink := EnumEditor; EditLink := EnumEditor;
end;} end;
end; end;

View File

@ -254,7 +254,7 @@ type
implementation implementation
uses main; uses main, grideditlinks;
{$R *.lfm} {$R *.lfm}
@ -1730,56 +1730,56 @@ procedure TfrmTableEditor.listColumnsCreateEditor(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink); Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
var var
VT: TLazVirtualStringTree; VT: TLazVirtualStringTree;
//EnumEditor: TEnumEditorLink; EnumEditor: TEnumEditorLink;
//DefaultEditor: TColumnDefaultEditorLink; DefaultEditor: TColumnDefaultEditorLink;
//DatatypeEditor: TDatatypeEditorLink; DatatypeEditor: TDatatypeEditorLink;
Col: PTableColumn; Col: PTableColumn;
//Edit: TInplaceEditorLink; Edit: TInplaceEditorLink;
begin begin
// Start cell editor // Start cell editor
VT := Sender as TLazVirtualStringTree; VT := Sender as TLazVirtualStringTree;
Col := Sender.GetNodeData(Node); Col := Sender.GetNodeData(Node);
case Column of case Column of
ColNumDatatype: begin // Datatype pulldown ColNumDatatype: begin // Datatype pulldown
{DatatypeEditor := TDatatypeEditorLink.Create(VT, True, Col^); DatatypeEditor := TDatatypeEditorLink.Create(VT, True, Col^);
EditLink := DataTypeEditor;} EditLink := DataTypeEditor;
end; end;
ColNumCollation: begin // Collation pulldown ColNumCollation: begin // Collation pulldown
{EnumEditor := TEnumEditorLink.Create(VT, True, Col^); EnumEditor := TEnumEditorLink.Create(VT, True, Col^);
EnumEditor.AllowCustomText := True; EnumEditor.AllowCustomText := True;
EnumEditor.ItemMustExist := True; EnumEditor.ItemMustExist := True;
EnumEditor.ValueList := TStringList.Create; EnumEditor.ValueList := TStringList.Create;
EnumEditor.ValueList.Text := DBObject.Connection.CollationList.Text; EnumEditor.ValueList.Text := DBObject.Connection.CollationList.Text;
EnumEditor.ValueList.Sort; EnumEditor.ValueList.Sort;
EnumEditor.ValueList.Insert(0, ''); EnumEditor.ValueList.Insert(0, '');
EditLink := EnumEditor;} EditLink := EnumEditor;
end; end;
ColNumDefault: begin ColNumDefault: begin
{DefaultEditor := TColumnDefaultEditorLink.Create(VT, True, Col^); DefaultEditor := TColumnDefaultEditorLink.Create(VT, True, Col^);
DefaultEditor.DefaultType := Col.DefaultType; DefaultEditor.DefaultType := Col.DefaultType;
DefaultEditor.DefaultText := Col.DefaultText; DefaultEditor.DefaultText := Col.DefaultText;
DefaultEditor.OnUpdateType := Col.OnUpdateType; DefaultEditor.OnUpdateType := Col.OnUpdateType;
DefaultEditor.OnUpdateText := Col.OnUpdateText; DefaultEditor.OnUpdateText := Col.OnUpdateText;
EditLink := DefaultEditor;} EditLink := DefaultEditor;
end; end;
ColNumVirtuality: begin // Virtuality pulldown ColNumVirtuality: begin // Virtuality pulldown
{EnumEditor := TEnumEditorLink.Create(VT, True, Col^); EnumEditor := TEnumEditorLink.Create(VT, True, Col^);
EnumEditor.ValueList := TStringList.Create; EnumEditor.ValueList := TStringList.Create;
if DBObject.Connection.Parameters.IsMariaDB then if DBObject.Connection.Parameters.IsMariaDB then
EnumEditor.ValueList.CommaText := ',VIRTUAL,PERSISTENT' EnumEditor.ValueList.CommaText := ',VIRTUAL,PERSISTENT'
else else
EnumEditor.ValueList.CommaText := ',VIRTUAL,STORED'; EnumEditor.ValueList.CommaText := ',VIRTUAL,STORED';
EditLink := EnumEditor;} EditLink := EnumEditor;
end end
else begin else begin
{Edit := TInplaceEditorLink.Create(VT, True, Col^); Edit := TInplaceEditorLink.Create(VT, True, Col^);
Edit.TitleText := VT.Header.Columns[Column].Text; Edit.TitleText := VT.Header.Columns[Column].Text;
Edit.ButtonVisible := True; Edit.ButtonVisible := True;
EditLink := Edit;} EditLink := Edit;
end; end;
end; end;
end; end;
@ -2128,25 +2128,25 @@ procedure TfrmTableEditor.listCheckConstraintsCreateEditor(
out EditLink: IVTEditLink); out EditLink: IVTEditLink);
var var
VT: TLazVirtualStringTree; VT: TLazVirtualStringTree;
//Edit: TInplaceEditorLink; Edit: TInplaceEditorLink;
//EnumEditor: TEnumEditorLink; EnumEditor: TEnumEditorLink;
SQLFunc: TSQLFunction; SQLFunc: TSQLFunction;
begin begin
// Edit check constraint // Edit check constraint
VT := Sender as TLazVirtualStringTree; VT := Sender as TLazVirtualStringTree;
case Column of case Column of
0: begin 0: begin
{Edit := TInplaceEditorLink.Create(VT, True, nil); Edit := TInplaceEditorLink.Create(VT, True, nil);
Edit.TitleText := VT.Header.Columns[Column].Text; Edit.TitleText := VT.Header.Columns[Column].Text;
Edit.ButtonVisible := True; Edit.ButtonVisible := True;
EditLink := Edit;} EditLink := Edit;
end; end;
1: begin 1: begin
{EnumEditor := TEnumEditorLink.Create(VT, True, nil); EnumEditor := TEnumEditorLink.Create(VT, True, nil);
for SQLFunc in DBObject.Connection.SQLFunctions do for SQLFunc in DBObject.Connection.SQLFunctions do
EnumEditor.ValueList.Add(SQLFunc.Name + SQLFunc.Declaration); EnumEditor.ValueList.Add(SQLFunc.Name + SQLFunc.Declaration);
EnumEditor.AllowCustomText := True; EnumEditor.AllowCustomText := True;
EditLink := EnumEditor;} EditLink := EnumEditor;
end; end;
end; end;
end; end;
@ -2242,7 +2242,7 @@ procedure TfrmTableEditor.treeIndexesCreateEditor(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink); Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
var var
VT: TLazVirtualStringTree; VT: TLazVirtualStringTree;
//EnumEditor: TEnumEditorLink; EnumEditor: TEnumEditorLink;
Level: Cardinal; Level: Cardinal;
ColNode: PVirtualNode; ColNode: PVirtualNode;
Col: PTableColumn; Col: PTableColumn;
@ -2250,7 +2250,7 @@ begin
// Start cell editor // Start cell editor
VT := Sender as TLazVirtualStringTree; VT := Sender as TLazVirtualStringTree;
Level := (Sender as TLazVirtualStringTree).GetNodeLevel(Node); Level := (Sender as TLazVirtualStringTree).GetNodeLevel(Node);
{if (Level = 0) and (Column = 1) then begin if (Level = 0) and (Column = 1) then begin
// Index type pulldown // Index type pulldown
EnumEditor := TEnumEditorLink.Create(VT, True, nil); EnumEditor := TEnumEditorLink.Create(VT, True, nil);
EnumEditor.ValueList := TStringList.Create; EnumEditor.ValueList := TStringList.Create;
@ -2277,7 +2277,7 @@ begin
EnumEditor.ValueList := Explode(',', ',ASC,DESC'); EnumEditor.ValueList := Explode(',', ',ASC,DESC');
EditLink := EnumEditor; EditLink := EnumEditor;
end else end else
EditLink := TInplaceEditorLink.Create(VT, True, nil);} EditLink := TInplaceEditorLink.Create(VT, True, nil);
end; end;
@ -2807,8 +2807,8 @@ procedure TfrmTableEditor.listForeignKeysCreateEditor(
out EditLink: IVTEditLink); out EditLink: IVTEditLink);
var var
VT: TLazVirtualStringTree; VT: TLazVirtualStringTree;
//EnumEditor: TEnumEditorLink; EnumEditor: TEnumEditorLink;
//SetEditor: TSetEditorLink; SetEditor: TSetEditorLink;
DBObjects: TDBObjectList; DBObjects: TDBObjectList;
Key: TForeignKey; Key: TForeignKey;
ColNode: PVirtualNode; ColNode: PVirtualNode;
@ -2819,7 +2819,7 @@ var
begin begin
// Init grid editor in foreign key list // Init grid editor in foreign key list
VT := Sender as TLazVirtualStringTree; VT := Sender as TLazVirtualStringTree;
{case Column of case Column of
0: EditLink := TInplaceEditorLink.Create(VT, True, nil); 0: EditLink := TInplaceEditorLink.Create(VT, True, nil);
1: begin 1: begin
SetEditor := TSetEditorLink.Create(VT, True, nil); SetEditor := TSetEditorLink.Create(VT, True, nil);
@ -2858,7 +2858,7 @@ begin
EnumEditor.ValueList := Explode(',', DBObject.Connection.GetSQLSpecifity(spForeignKeyEventAction)); EnumEditor.ValueList := Explode(',', DBObject.Connection.GetSQLSpecifity(spForeignKeyEventAction));
EditLink := EnumEditor; EditLink := EnumEditor;
end; end;
end;} end;
end; end;