Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ПП1 (C++ БД).doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
5 Мб
Скачать
☆

Связь действий ActionList с изображениями ImageList

Чтобы сделать интерфейс боле привлекательным, часто используют пиктограммы на гранях кнопок. Для связей объектов-действий из компонента ActionList с набором пиктограмм предназначен компонент ImageList. Он представляет собой централизованное хранилище маленьких изображений (пиктограмм, икон), с которыми могут быть связаны кнопки, объекты-действия и т.п. Разместите на форме компонент ImageList1 из категории Win32, щёлкните по нему правой клавишей, выберите пункт ImageList Editor и получите следующее окно (рис. 66).

Рис. 66. Общий вид редактора изображения компонента ImageList

Главное хранилище пиктограмм представлено в окне Images. Пиктограммы можно получить по кнопке ADD, предлагающей обычный браузер. В качестве подходящих изображений можно использовать файлы с расширением ico либо bmp, при условии, что их размер не превышает 16Х16. Множество изображений, размещаемых обычно на кнопках, содержится в папке ...\Program Files\Common Files\Borland Shared\Images\Buttons. Найти подходящий набор картинок можно, введя в качестве запроса маску .bmp. В частности, можно обнаружить целые коллекции пиктограмм, упакованных в небольшие блоки по 10-20 изображений (например, main1b.bmp ). В этих случаях при попытке добавить изображение задается вопрос:

Bitmap dimensions are greater then imagelist dimensions. Separate into ... separated bitmaps? (Размерность изображения больше размерности списка. Разделить на ... отдельные битовые матрицы?).

Если ответить утвердительно, то редактор предложит разъединить блок на отдельные картинки и самостоятельно разместит их в поле Images. Потом вы можете переставить изображения местами или удалить ненужные кнопкой Delete. Если подходящей картинки обнаружить не удалось, можно самостоятельно нарисовать пиктограмму, пользуясь любым графическим редактором, при условии сохранения результата в формате bmp.

При выборе пиктограмм не следует увлекаться, в целях не всегда оправданной эстетики, поиском оригинальных или «красивых», но не общепринятых изображений. Появление на лицевой панели вашей программы непонятного значка вызовет у пользователя недоумение, а то и раздражение, поскольку у него всегда возникнет вопрос «Что это такое?». Руководствуйтесь следующим технологически правилом:

Заповедь 8 технологии программирования.

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

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

Чтобы организовать связь списка картинок ImageList и списка действий ActionList, не забудьте в его свойстве Images указать имя коллекции ImageList. Установите фокус на ActionList1, вызовите правой кнопкой редактор ActionListEditor, в окне Actions установите курсор на нужное действие в Инспекторе объектов найдите свойство ImageIndex (индекс картинки). Значение этого индекса обеспечит связь действия с пиктограммой. Его можно поставить в виде цифры, что затруднительно, поскольку надо помнить индексы картинок. Рациональнее воспользоваться выпадающим списком, нажав маленькую стрелочку в правом углу окна индекса. Появившееся изображение отражено на рис. 67

Рис. 67. Список пиктограм из компонента ImageList