Delphi. Иерархические данные. DBTreeView своими руками. Добавление изображений из ресурсов

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

5

 

Итак, как же добиться такого результата? Как организовать загрузку картинок из ресурсов? Об этом мы и поговорим в данной статье. К счастью, сделать это не так сложно. 

Начали!

Для начала, собственно, организуем сами картинки. 16*16 – форматы почти любые – загрузим их с помощью специального типа twicimage.

6

7

 

 

В нашем проекте добавим ресурсы через Project > Resources and Images

9

 

Здесь главное написать понятные идентификаторы ресурсов, так как будем возвращаться к ним.

Создадим отдельный датамодуль, в котором и будет происходить основная работа и добавим на него 2 imagelist

8

 

 

 

И напишем следующий код

Здесь всё относительно просто. Вспомогательная процедура добавляет в imagelist изображения 16*16. Она вызывается для заполнения соответствующих imagelist. В нашем случае их два – один для галочек, другой для папок и файлов.

В главном модуле – добавляем в Uses наш датамодуль работы с imageList,

 

Убираем его из Auto-Create в Project>Options>Forms

Объявляем глобальную переменную типа нашего датамодуля

В FormCreate подключаем к TreeView

В FormClose удаляем из памяти нашу переменную, так как она была глобальной

В результате, что мы получили? При загрузке программы заполняются имэдж листы из ресурсов. Я не уверен до конца где они хранятся, но провел небольшой эксперимент. Добавил файл в 2 мб. в ресурсы и загружал его таким же образом в программу. В итоге EXE файл увеличился как раз на эти +2Мб.

В принципе, в Delphi работа с ресурсами построена очень грамотно! Если не считать небольшой возни с подбором картинок, то само программирование заняло не более 10 минут. Всё благодаря продуманной IDE RAD Studio.

This entry was posted in Delphi, Деревья. Bookmark the permalink.