Find a better event for listening to changes in ListColumns: OnStateChange. OnChange sometimes isn't fired when no node is selected. Fixes state of menuEditField which should only be enabled when a node in ListColumns is focused.

This commit is contained in:
Ansgar Becker
2008-03-10 21:40:09 +00:00
parent dcab2fb099
commit 5bf8555257
2 changed files with 6 additions and 4 deletions

View File

@ -895,7 +895,6 @@ object MDIChild: TMDIChild
TreeOptions.PaintOptions = [toShowDropmark, toShowHorzGridLines, toShowVertGridLines, toThemeAware, toUseBlendedImages]
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toRightClickSelect]
OnBeforePaint = vstBeforePaint
OnChange = ListColumnsChange
OnCompareNodes = vstCompareNodes
OnDblClick = UpdateField
OnFreeNode = vstFreeNode
@ -907,6 +906,7 @@ object MDIChild: TMDIChild
OnInitNode = vstInitNode
OnKeyUp = controlsKeyUp
OnNewText = ListColumnsNewText
OnStateChange = ListColumnsStateChange
Columns = <
item
Position = 0

View File

@ -349,7 +349,8 @@ type
procedure DBtreeExpanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
procedure ListTablesChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure ListColumnsChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure ListColumnsStateChange(Sender: TBaseVirtualTree; Enter, Leave:
TVirtualTreeStates);
procedure DBMemo1Exit(Sender: TObject);
procedure btnUnsafeEditClick(Sender: TObject);
procedure gridMouseDown(Sender: TObject; Button: TMouseButton;
@ -3039,8 +3040,8 @@ end;
{**
Clicked somewhere in the field-list of the "Table"-tabsheet
}
procedure TMDIChild.ListColumnsChange(Sender: TBaseVirtualTree; Node:
PVirtualNode);
procedure TMDIChild.ListColumnsStateChange(Sender: TBaseVirtualTree; Enter,
Leave: TVirtualTreeStates);
var
SomeSelected, OneFocused: Boolean;
begin
@ -3054,6 +3055,7 @@ begin
MenuEditField.Enabled := OneFocused;
btnTableEditField.enabled := OneFocused;
menuRenameColumn.Enabled := OneFocused;
menuEditField.Enabled := OneFocused;
end;