Существует ли возможность переключения набора данных, используемого DBNavigator на набор данных активного элемента управления без из прямого указания?

 

Все, что вы хотите, поместится в пару строк кода. Добавьте "TypInfo" в список используемых модулей и сделайте примерно следующее:

 

Code:

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;

 

 

 

Некоторая избыточность в проверках гарантирует вам, что вам не попадется некий странный объект (от сторонних производителей компонентов, например), имеющий свойство DataSource, но не типа TDataSource.

 

 

Взято из Советов по Delphi отВалентина Озерова

Сборник Kuliba

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить