Компонент ImageList расположен на вкладке Win32 Палитры компонентов:
Перенесите его на форму. Сейчас в нашем ImageList изображений нет. Давайте добавим несколько изображений. Для этого сделайте двойной щелчок на расположенном на форме компоненте ImageList1. Появится диалоговое окно для работы с изображениями. Естественно, что для добавления изображения используется кнопка Add. При нажатии на нее появляется стандартное окно для выбора файла. Выберите какой-нибудь bmp-файл с изображением размера 32 на 16. Естественно, что такой файл надо предварительно создать. В файле должно быть 2 изображения 16 на 16. Нажмите на кнопку Open. Так как у нас 2 изображения, то должно появится окно с вопросом, предлагающим разделить нашу картинку на две (на две, так как картинки должны быть квадратные). Отвечаем, естественно, да:
Теперь в нашем диалоговом окне появилось 2 изображения:
Назначение остальных кнопок понятно. Отметим все же, что удалять можно и отдельные изображения из загруженного файла - т. е. фактически из графического файла можно взять только нужные картинки.
Также отметьте себе, что изображения в диалоговом окне можно менять местами (перетаскиванием мышью).
Закройте диалоговое окно. Давайте теперь используем наш ImageList. Добавьте на форму компонент Image с вкладки Additional Палитры компонентов и обычную кнопку. В обработчик для щелчка по кнопке внесите следующий код:
void __fastcall TForm1::Button2Click(TObject *Sender) { static int index=0; //Выводим очередное изображение в Image1. ImageList1->GetBitmap(index, Image1->Picture->Bitmap); index++; //Берем индекс следующей картинки. Invalidate(); //Перерисовываем. }Теперь если вы запустите программу и будете щелкать на кнопке, то в Image1 будут последовательно появляться изображения из ImageList1 - сначала с индексом 0, потом с индексом 1 и т. д. В приведенном фрагменте используется метод GetBitmap класса TImageList. Первым параметром он берет номер картинки из ImageList (нумерация идет с нуля), вторым - куда эта картинка пишется. У нас она пишется в Image1.
Вообще говоря довольно-таки много компонентов имеют свойство Images. Это свойство как раз и имеет тип ImageList. Например, если вы разместите на форме компонент MainMenu, то для этого свойства вы сможете выбрать все ImageList'ы:
Комментариев нет:
Отправить комментарий