When using the TDBNavigator component with read-only datasets, the Refresh button is disabled by design. In many situations you will have a read-only dataset displayed in a DBGrid, connected to a DBNavigator where DataSet's (TxxxTable or TxxxQuery) Refresh method is expected and "legal".
Here's how to re-enable the DBNavigator's Refresh button:
- Expose the Buttons property of the DBNavigator by using the protected hack method. First we create a class to access the protected members of a DBNavigator:
TDBNavigatorEx = class(TDBNavigator) ;
- Set Enable = true for the Refresh button inside the dataset's OnOpen event handler.
TDBNavigatorEx(DBNavigator).Buttons[nbRefresh].Enabled := TRUE ;
Note: "DBNavigator" is the name of the DBNavigator component attached to a readonly datasource/dataset.
Delphi tips navigator:
» Implementing custom sorting for a TListView component
« Placing a Form inside a TabSheet of a TPageControl

