Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по C++ Builder

  Все выпуски  

Уроки по C++ Builder


Информационный Канал Subscribe.Ru

C++ Builder. VCL. Уроки с сайта http://progs.biz

Рассылка №15

C++ Builder. VCL. Урок 22. Компонент ImageList.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 22. Компонент ImageList.

Д. Чепмен Освой самостоятельно Visual C++.NET за 21 день.

Заказать на Озоне
Рассылки сайта progs.biz через subscribe.ru
Уроки по ассемблеру
Уроки по ассемблеру. Использование MASM, примеры, FAQ.

C++ Builder. Урок 22. Компонент ImageList

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

Компонент 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'ы.

Для отдельных же пунктов меню вы можете выбирать изображения из ImageList по индексу. Это более подробно мы рассмотрим на следующих уроках.

Наверх

Copyright Алексеев Игорь, 2002-2003
Copyright Шмидт Отто, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное