Обсуждение статьи "DoEasy. Элементы управления (Часть 28): Стили полосы в элементе управления "ProgressBar""

 

Опубликована статья DoEasy. Элементы управления (Часть 28): Стили полосы в элементе управления "ProgressBar":

В статье будут разработаны стили отображения и текст описания полосы прогресса элемента управления ProgressBar.

Элемент управления ProgressBar, создаваемый нами для библиотеки, пока имеет один стиль отображения полосы прогресса — непрерывная линия (Continuous). Но у такого элемента управления есть ещё два стиля отображения — сегментированные блоки (Blocks) и непрерывная прокрутка блока в объекте (Marquee). Если со стилем Blocks всё достаточно понятно (вместо непрерывной линии рисуются отдельно расположенные блоки), то стиль Marquee можно использовать в случае, если заранее неизвестно количество итераций, которые необходимо визуально отобразить при помощи элемента управления ProgressBar. В таком случае во время хода выполнения внутри объекта будет постоянно прокручиваться единственный блок, равный половине ширины полосы прогресса. 

Помимо создания этих двух новых стилей, добавим к полосе прогресса текст, выводимый внутри неё. Сам текст будет представлен обычным объектом класса CLabel библиотеки, и привязан он будет не к объекту-полосе прогресса, а к объекту-подложке, который является основанием элемента управления ProgressBar. Текст будет выводиться внутри полностью прозрачного объекта-текстовой метки, имеющего размер, равный ширине и высоте полосы прогресса, и этот объект будет всегда находиться на переднем плане — всегда выше всех объектов элемента управления ProgressBar.

Скомпилируем советник и запустим его на графике:


Как видим все заявленные режимы нормально работают.

Автор: Artyom Trishkin

Причина обращения: