Delphi для профессионалов. Элементы управления Win32
Расширенный комбинированный список TComboBoxEx
Такой выпадающий список знаком пользователям со времен Windows 95 (например, список всех элементов оболочки
Shell: папки My Computer, My Documents и т. п.) Соответствующий элемент управления появился в библиотеке ComCtl32 несколько позже, а в компонент он превратился только в Delphi 7.
Что отличает этот "продвинутый" выпадающий список от обычного
TCоmbоВох? С функциональной точки зрения основных отличий два: возможность добавлять картинки к элементам и выравнивать последние с разным отступом, имитируя иерархию.
Реализовано это следующим образом.
У компонента TComboBoxEx, помимо свойства
items, есть свойство
property ItemsEx: TComboExItems;
которое представляет собой коллекцию элементов типа
TComboExitem. Щелкнув на этом свойстве в Инспекторе объектов, увидим типичный редактор коллекций, где каждый элемент обладает такими опубликованными свойствами:
свойство
Caption отвечает за заголовок элемента, каким он буден виден в списке;
свойство Data —
это нетипизированный указатель на прикрепляемые к элементу данные;
отступ от левого
края списка задается свойством indent. В документации
написано, что оно задается в пикселах. Это почти так: на самом деле одна единица
значения свойства соответствует десятку пикселов;
три номера картинок:
обычный imageindex, номер для выбранного элемента
Selected Imageindex И Overlaylmagelndex. Последнее
свойство задает номер картинки, используемой как накладываемая маска для первых
двух. Она должна быть черно-белой: белые области прозрачны для исходной картинки,
черные — нет. Все три индекса указывают на один и тот же список картинок,
задаваемый свойством images родительского компонента.
Дополнительные опции в расширенном выпадающем списке задаются свойством
styleEx. Это — множество из четырех флагов, установка которых сводится к разрешению или запрету перечисленных выше новых свойств.
Знаете ли Вы, что Программный сниппет (англ. snippet — фрагмент, отрывок) в практике программирования — небольшой фрагмент исходного кода или текста, пригодный для повторного использования. Сниппеты не являются заменой процедур, функций или других подобных понятий структурного программирования. Они обычно используются для более лёгкой читаемости кода функций, которые без их использования выглядят слишком перегруженными деталями, или для устранения повторения одного и того же общего участка кода. Интегрированные среды разработки (IDE) содержат встроенные средства для ввода конструкций языка. Например, в Microsoft Visual Studio, Borland Developer Studio, для этого необходимо ввести ключевое слово и нажать определённую клавишную комбинацию. В IDE Geany существует специальный файл snippets.conf (путь к файлу: /home/user/.config/geany) позволяющий создавать свои сниппеты. Другие программы, такие как Macromedia Dreamweaver и Zend Studio, позволяют использовать сниппеты в Веб-программировании.