Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDelphiНовости

Управление выражениями Delphi с помощью компонента списка привязок

bindingslist 03

После изучения выражений привязки и того, как они могут связываться с компонентами, перейдем к компоненту, предназначенному для управления выражениями привязки.


В недавних сообщениях в блоге я рассмотрел основной движок выражений RTL Delphi   и  привязку компонентов . Теперь мы можем сделать дополнительный шаг и изучить ключевой компонент всей архитектуры привязок, который называется BindingsList. Список привязок — это набор различных типов выражений привязок, управляемых конструкторами.

Другими словами, выражения и привязки компонентов, которые я определил в исходном коде в последнем сообщении блога, могут быть полностью определены в конструкторах (и мастерах) компонента BindingsList. Просто перетащите компонент этого типа в форму плюс несколько визуальных компонентов (в моем примере два редактирования, вращение и индикатор выполнения — см. Изображение ниже).

bindingslist_01-6295888

Компонент BindingsList имеет конструктор, который позволяет определять набор привязок. Каждую привязку можно выбрать с помощью одного из множества доступных вариантов (их слишком много, чтобы исследовать в этой статье, и в основном они сосредоточены на привязках источников данных и полей данных). Я собираюсь использовать здесь два основных параметра: TBindExpression и TBindExprItems.

bindingslist_02-7282443

После выбора одной из этих привязок, скажем TBindExpression, вам необходимо взаимодействовать с двумя разными поверхностями дизайна для работы с выражением: с одной стороны, вы можете настроить свойства выражения в инспекторе объектов, например SourceComponent и ControlComponent (the использование термина для обозначения целевого элемента управления) и связанных выражений; с другой стороны, дважды щелкнув выражение в редакторе BindingList, вы можете открыть нам специальный конструктор выражений, который, в свою очередь, имеет дополнительные редакторы элементов и средства просмотра:

bindingslist_03-6620061

На изображении выше вы можете видеть, что я подключил выражение к исходному и целевому элементам управления, но до сих пор не определил выражение. Это может быть простое имя свойства или более сложная комбинация значений и выражений. Его можно настроить в  свойствах выражений инспектора  объектов для привязки или в специальном конструкторе, показанном выше. Дизайнер также предлагает возможность оценивать и проверять различные выражения.

Возвращаясь к выражениям, мы можем просто использовать Value и Position для Spin Edit и Progress Bar соответственно. Обратите внимание, что выражение привязки имеет направление (по умолчанию, источник для управления), которое может быть изменено на противоположное или также может быть двунаправленным.

Я использовал двунаправленное выражение для двух полей редактирования, так что при вводе в одно из них содержимое копируется в другое. В этом втором примере я использовал привязку TBindExprItems (но регулярного выражения было бы достаточно). Это более сложная привязка, в которой вы указываете источник и элемент управления (как указано выше), но определяете набор выражений очистки и форматирования, которые могут включать несколько свойств элементов управления. В этом примере отображение текста в текст (двунаправленное), как вы можете видеть ниже:

bindingslist_04-2550973

При всем этом единственный код Delphi, который требуется в приложении, — это вызов для повторной оценки привязок при изменении значения источника. Это легко сделать, обработав события OnChange различных элементов управления и запустив общее обновление привязок для текущего элемента управления (  отправителя ):

Это очень простое приложение в действии:

bindingslist_05-6555244

Теперь вам может быть интересно, где в конечном итоге все эти параметры конфигурации … но, как и большинство других конфигураций времени разработки в Delphi, это не черный цвет для файла формы, который вы можете просматривать как текст (и редактировать, если вы знаете, что делаете) . Вы также можете скопировать компонент из дизайнера и вставить его как текст, как я сделал здесь:

На данный момент это все, даже если я пойму, что коснулся лишь поверхности архитектуры привязок. Следующим шагом в этой серии по выражениям и привязкам являются конструкторы Visual Live Binding, которые основываются на уже знакомых нам частях. Я расскажу об этом в следующий раз.

banner delphi low code wizard 1220x300 2


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES