Существует ли возможность переключения набора данных, используемого DBNavigator на набор данных активного элемента управления без из прямого указания? Все, что вы хотите, поместится в пару строк кода. Добавьте "TypInfo" в список используемых модулей и сделайте примерно следующее:
var PropInfo: PPropInfo; begin PropInfo := GetPropInfo(PTypeInfo(ActiveControl.ClassInfo), 'DataSource'); if (PropInfo <> nil) and (PropInfo^.PropType^.Kind = tkClass) and (GetTypeData(PropInfo^.PropType)^.ClassType = TDataSource) then DBNavigator1.DataSource := TDataSource(GetOrdProp(ActiveControl, PropInfo)); end;