Главная страница
Навигация по странице:

  • Forml › Canvas › Rectangle(10.10.50, 50);

  • Метод Действие LineTo(x,y)

  • Rectangle (x1,y1,x2, y2)

  • FillRect (x1,y1,x2,y2)

  • FrameRect(x1,y1,x2,y2)

  • Polyline (points, n) Рисует ломаную линию, points

  • Windows

  • Add ListBox1ItemsAdd("Roman") Примердля ListBox'а. Для вставки строки в определенное место служит метод Insert


    Скачать 0.59 Mb.
    НазваниеAdd ListBox1ItemsAdd("Roman") Примердля ListBox'а. Для вставки строки в определенное место служит метод Insert
    Дата09.02.2022
    Размер0.59 Mb.
    Формат файлаdocx
    Имя файлаC.docx
    ТипУрок
    #356179
    страница3 из 17
    1   2   3   4   5   6   7   8   9   ...   17

    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 по индексу. Это более подробно мы рассмотрим на следующих уроках.

    Холст


    C++ Builder позволяет программисту разрабатывать программы, которые работают с графикой. В этой главе рассказывается, что надо сделать, чтобы на поверхности формы появилась картинка, сформированная из графических примитивов, или иллюстрация, созданная в графическом редакторе или полученная в результате сканирования фотографии.

    Программа может вывести графику на поверхность формы (или компонента image), которой соответствует свойство canvas (Canvas – холст для рисования). Для того чтобы на поверхности формы или компонента image появилась линия, окружность, прямоугольник или другой графический элемент (примитив), необходимо к свойству Canvas применить соответствующий метод (табл. 3.1).

    Например, оператор Forml › Canvas › Rectangle(10.10.50, 50); рисует на поверхности формы прямоугольник.

    Таблица 3.1. Методы вычерчивания графических примитивов.

    Метод

    Действие

    LineTo(x,y)

    Рисует линию из текущей точки в точку с указанными координатами

    Rectangle (x1,y1,x2, y2)

    Рисует прямоугольник, x1, y1 и х2, у2 – координаты левого верхнего и правого нижнего углов прямоугольника. Цвет границы и внутренней области прямоугольника могут быть разными

    FillRect (x1,y1,x2,y2)

    Рисует закрашенный прямоугольник, x1, y1, х2, у2 – определяют координаты диагональных углов

    FrameRect(x1,y1,x2,y2)

    Рисует контур прямоугольника, x1, y1, х2, у2 – определяют координаты диагональных углов

    RounRect (x1,y1,x2,y2,x3,y3)

    Рисует прямоугольник со скругленными углами

    Ellipse (x1,y1,x2,y2)

    Рисует эллипс или окружность (круг), x1, y1, х2, у2 – координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность

    Polyline (points, n)

    Рисует ломаную линию, points – массив типа TPoint. Каждый элемент массива представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной; л – количество звеньев ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми отрезками точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д.

    Методы вывода графических примитивов рассматривают свойство canvas как некоторый абстрактный холст, на котором они могут рисовать (Canvas переводится как "поверхность", "холст для рисования"). Холст состоит из отдельных точек – пикселов. Положение пиксела на поверхности холста характеризуется горизонтальной (X) и вертикальной (Y) координатами. Координаты возрастают сверху вниз и слева направо (рис. 3.1). Левый верхний пиксел поверхности формы (клиентской области) имеет координаты (0, 0), правый нижний – (ciientwidthclientHeight). Доступ к отдельному пикселу осуществляется через свойство Pixels, представляющее собой двумерный массив, элементы которого содержат информацию о цвете точек холста.

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


    Рис. 3.1. Координаты точек поверхности формы (холста)
    1   2   3   4   5   6   7   8   9   ...   17


    написать администратору сайта