Я столкнулся с интересной особенностью, используя Delphi 10 Seattle. В Firedac, в частности компонент TFDConnection
, свойство Params
обладает некоторой магией вуду, которая может динамически отображать и скрывать свойства в IDE на лету, в зависимости от значения другого конкретного свойства. (Я не знаю, как долго это было доступно, так как я только начал с Firedac). Когда вы изменяете свойство DriverID
в TFDConnection.Params
, остальные объекты в Params
отображаются в инспекторе объектов IDE, чтобы иметь возможность указывать свойства, специфичные для драйвера.Динамически показывать/скрывать свойства в IDE Object Inspector?
Теперь я исследовал, как это работает, и это множество определений интерфейсов, укореняющихся с IFDStanDefinition
. Я не могу понять, как это на самом деле выполняется в среде IDE, кроме того, что есть TStringList
, в котором задействованы функциональные возможности Name/Value.
Я хотел бы реализовать то же самое в своем собственном компоненте, в частности, TCollectionItem
имеет свойство ActionType
, которое является типом Enum. Я хотел бы динамически показывать/скрывать свойства в зависимости от того, какое значение выбрано для этого свойства.
Как я могу реализовать ту же способность отображения/скрытия свойств в инспекторе объектов IDE в элементе коллекции моего собственного компонента?
На стороне примечания, я боюсь, что часть ответа состоит в том, что он ожидает все строковые значения, судя по тому, как вы взаимодействуете с этим свойством Params
через код.
Прогресс по этому вопросу? Я ничего не могу проверить, так как я нахожусь в отпуске с планшетом (я могу читать исходный код старой версии FireDAC в это время). Не могли бы вы сообщить о некоторых отзывах, пожалуйста? Вышеприведенный код должен быть легко зарегистрирован как компонент для проверки ... – Victoria