@@ -774,7 +774,6 @@ TMainForm = class(TExtForm)
774774 Copywithtabstospaces1: TMenuItem;
775775 Movelinedown1: TMenuItem;
776776 Movelineup1: TMenuItem;
777- menuToggleAll: TMenuItem;
778777 menuCloseTabOnDblClick: TMenuItem;
779778 Undo1: TMenuItem;
780779 actSequalSuggest: TAction;
@@ -808,6 +807,8 @@ TMainForm = class(TExtForm)
808807 menuDisplayLogPanel1: TMenuItem;
809808 menuTreefilters1: TMenuItem;
810809 N27: TMenuItem;
810+ actCopyColumnNames: TAction;
811+ Copycolumnnames1: TMenuItem;
811812 procedure actCreateDBObjectExecute(Sender: TObject);
812813 procedure menuConnectionsPopup(Sender: TObject);
813814 procedure actExitApplicationExecute(Sender: TObject);
@@ -827,6 +828,7 @@ TMainForm = class(TExtForm)
827828 procedure actTableToolsExecute(Sender: TObject);
828829 procedure actPrintListExecute(Sender: TObject);
829830 procedure actCopyTableExecute(Sender: TObject);
831+ procedure popupListHeaderPopup(Sender: TObject);
830832 procedure ShowStatusMsg(Msg: String=''; PanelNr: Integer=6);
831833 procedure actExecuteQueryExecute(Sender: TObject);
832834 procedure actCreateDatabaseExecute(Sender: TObject);
@@ -1190,6 +1192,7 @@ TMainForm = class(TExtForm)
11901192 procedure FormBeforeMonitorDpiChanged(Sender: TObject; OldDPI,
11911193 NewDPI: Integer);
11921194 procedure menuToggleAllClick(Sender: TObject);
1195+ procedure menuCopyColumnNamesClick(Sender: TObject);
11931196 procedure FormAfterMonitorDpiChanged(Sender: TObject; OldDPI,
11941197 NewDPI: Integer);
11951198 procedure menuCloseTabOnDblClickClick(Sender: TObject);
@@ -10364,6 +10367,29 @@ procedure TMainForm.menuToggleAllClick(Sender: TObject);
1036410367
1036510368end;
1036610369
10370+ procedure TMainForm.menuCopyColumnNamesClick(Sender: TObject);
10371+ var
10372+ Grid: TVirtualStringTree;
10373+ Col: TColumnIndex;
10374+ List: TStringList;
10375+ begin
10376+ if Sender is TMenuItem then
10377+ Grid := PopupComponent(Sender) as TVirtualStringTree
10378+ else if Screen.ActiveControl is TVirtualStringTree then
10379+ Grid := Screen.ActiveControl as TVirtualStringTree
10380+ else
10381+ Exit;
10382+
10383+ List := TStringList.Create;
10384+ Col := Grid.Header.Columns.GetFirstVisibleColumn(True);
10385+ while Col > NoColumn do begin
10386+ List.Add(Grid.Header.Columns[Col].Text);
10387+ Col := Grid.Header.Columns.GetNextVisibleColumn(Col);
10388+ end;
10389+ Clipboard.TryAsText := List.Text;
10390+ List.Free;
10391+ end;
10392+
1036710393procedure TMainForm.menuTreeCollapseAllClick(Sender: TObject);
1036810394var
1036910395 n: PVirtualNode;
@@ -13025,6 +13051,34 @@ procedure TMainForm.CloseButtonOnMouseUp(Sender: TObject; Button: TMouseButton;
1302513051 TimerCloseTabByButton.Enabled := True;
1302613052end;
1302713053
13054+ procedure TMainForm.popupListHeaderPopup(Sender: TObject);
13055+ var
13056+ Item: TMenuItem;
13057+ i: Integer;
13058+ const
13059+ CustomItemTag = 123;
13060+ begin
13061+ // Add a few items to the top of the grid's header context menu
13062+ for i:=popupListHeader.Items.Count-1 downto 0 do begin
13063+ Item := popupListHeader.Items[i];
13064+ if Item.Tag = CustomItemTag then
13065+ Item.Free;
13066+ end;
13067+
13068+ Item := TMenuItem.Create(popupListHeader);
13069+ Item.Tag := CustomItemTag;
13070+ Item.Caption := _('Toggle visibility of all columns');
13071+ Item.OnClick := menuToggleAllClick;
13072+ popupListHeader.Items.Insert(0, Item);
13073+
13074+ Item := TMenuItem.Create(popupListHeader);
13075+ Item.Tag := CustomItemTag;
13076+ Item.Caption := _('Copy column names');
13077+ Item.OnClick := menuCopyColumnNamesClick;
13078+ Item.ImageIndex := actCopy.ImageIndex;
13079+ popupListHeader.Items.Insert(1, Item);
13080+ end;
13081+
1302813082
1302913083procedure TMainForm.TimerCloseTabByButtonTimer(Sender: TObject);
1303013084var
0 commit comments