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

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

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

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

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...