Hide columns in ListTables if their header was "draggedout", which means: dragged up or down, not to the left or right.

This commit is contained in:
Ansgar Becker
2007-10-23 21:29:20 +00:00
parent cbc37695de
commit edbfbedc2f
2 changed files with 25 additions and 0 deletions

View File

@@ -392,6 +392,7 @@ object MDIChild: TMDIChild
OnGetHint = vstGetHint
OnGetNodeDataSize = vstGetNodeDataSize
OnHeaderClick = vstHeaderClick
OnHeaderDraggedOut = vstHeaderDraggedOut
OnInitNode = vstInitNode
OnNewText = ListTablesNewText
Columns = <

View File

@@ -501,6 +501,8 @@ type
PVirtualNode; Column: TColumnIndex; var Result: Integer);
procedure vstBeforePaint(Sender: TBaseVirtualTree; TargetCanvas:
TCanvas);
procedure vstHeaderDraggedOut(Sender: TVTHeader; Column: TColumnIndex;
DropPosition: TPoint);
procedure ComboBoxQueryDelimiterExit(Sender: TObject);
procedure ComboBoxQueryDelimiterAdd(delimiter: String);
procedure FormCreate(Sender: TObject);
@@ -6611,4 +6613,26 @@ begin
end;
{**
A header column of a VirtualTree was "dragged out", which means:
dragged down or up, not to the left or right.
We imitate the behaviour of various applications (fx Outlook) and
hide this dragged column
}
procedure TMDIChild.vstHeaderDraggedOut(Sender: TVTHeader; Column:
TColumnIndex; DropPosition: TPoint);
begin
if Sender.Treeview = ListTables then
begin
// Keep "Tables" column
if Column = 0 then
Exit;
// Uncheck menuitem in header's contextmenu
popupDBGridHeader.Items[Column].Checked := False;
end;
// Hide the draggedout column
Sender.Columns[Column].Options := Sender.Columns[Column].Options - [coVisible];
end;
end.