Переназначения объектов

Previous  Top  Next

    
 

 

 

Существует ли возможность переключения набора данных, используемого 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.

 

©Drkb::00118

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

Сборник Kuliba