Домой

Рекомендуем _

Как удалить джейлбрейк ios 7 без компьютера

Как сделать самому кальян в домашних условиях

Как улучшить навык вождения в samp rp

Как сделать юбку для куклы из конфет

Камаз самасвал бу купит

Как улучшить оперение у уток

Как снять цифровой пароль с телефона fly

Темы _

Как рисовать графики в delphi

Brush Кисть используется для заполнения области определённым цветом. Font Используется для задания шрифта, которым будет нарисован текст. Можно указать имя шрифта, размер и т.

Тип TGraphic является базовым классом для графических объектов в Delphi, таких как: Все они используют одни и те же функции, которые приведены в таблице: Все эти функции являются методами TCanvas.

Это как раз тот момент, о котором я упоминал выше. Кистью мы заполняем объекты, а пером обрамляем. Если цвет кисти brush меняется случайным образом, то цвет пера pen остаётся постоянным.

Эффект перемещения точки начала рисования линии так же достигается при помощи установки своства PenPos в канвасе По умолчанию, точка начала рисования установлена в 0,0 , то есть, если сразу вызвать "Canvas. LineTo , ;" то будет нарисована линия из точки 0,0 в точку , Точка начала рисования автоматически переместится в , , то есть, если выполнить команду "Canvas.

Сразу скажу, что эта функция довольно неэффективна. Она создаёт и уничтожает битмап каждый раз когда вызывается, а так же каждый раз проверяет существование файла. Лучше объявлять объект TBitmap как часть формы, создавать и загружать картинку в FormCreate, а освобождать её в FormDestroy.

Описанный выше способ позволяет рисовать битмап в run-time. Конечно, проще поместить на форму TImage и установить в ней картинку. Изображение будет постоянно оставаться на том месте, где Вы его поместили, но это скучно ;-. Куда интереснее сделать при помощи битмапов анимацию.

Поэтому, мы спокойно можем подставлять свойство канваса Handle везде, где нам это потребуется. Ради интереса можно взглянуть на таблицу, в которой представлены примеры вызовов некоторых функций из VCL и их аналогов из Windows API.

Никто нам не запрещает пользоваться API функциями напрямую! Но постойте-ка, все они требуют какого-то HDC! Почти всё в Windows использует "Дескриптор" Handle. Дескриптор, это способ идентификации Вашего объекта в системе. У каждого окна есть свой дескриптор, у каждой кнопки тоже есть свой дескриптор и т. Именно поэтому все наши объекты имеют дескриптор в качестве свойства - например, "MyForm. Я уже говорил в самом начале, что TCanvas включает в себя большинство функций DC.

Между прочим, функция RGB, составляет цвет каждой линии из трёх основных составляющих: О цветах поговорим немного позже, а вот так выглядит нарисованный пейзаж:. Теперь, когда линии нарисованы, попробуйте немножко подвигать форму. Если форму переместить за края экрана, то Вы увидите, что линии частично стёрлись. Это не глюк, и решается эта проблема очень просто. Но не сейчас ;-. Сперва посмотрим, как рисовать различные фигуры.

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

Из-за этого и получается такая картина. Перерисовка окна Теперь давайте разберёмся, почему в самом первом примере у нас стирались линии при перемещении формы за границы экрана. А именно, нам нужно выяснить разницу между "рисованием" и "перерисовкой". Рисование, это то, что мы делали выше. То есть, рисовали любые линии и графические фигуры. Однако, рисунок сохранялся до тех пор, пока окно форма не было обновлено.

Так же можно использовать разные дескрипторы, чтобы рисовать в разных местах. Например, можно использовать "SomeBmp. Handle" для рисования на картинке битмапе , либо "Form1. Handle", чтобы рисовать на форме. Это значит, что вместо того, чтобы передать строку в функцию напрямую, необходимо передать её как PChar.

Ниже, в таблице, представлены некоторые важные классы:. Однако, пора переходить от слов к делу, а именно, начать рисовать линии и фигуры. Рисование линий Сперва необходимо чётко уяснить, что координата 0,0 это верхний левый угол экрана.

Так же не забывайте передавать в функцию длину строки. Для этого можно воспользоваться функцией Length. Ну что, Вам уже захотелось поместить на форму какую-нибудь красивую картинку? Что такое Битмапы Bitmaps? Рисование линий, это, конечно, хорошо, но рано или поздно Вам понадобится нарисовать более реалистичную картнику в своём приложении.

Рисование фигур Для рисования фигур, в TCanvas предусмотрены следующие функции:. Ещё есть очень нужная функция TextOut, которая позволяет рисовать текст, используя шрифт, заданный в канвасе:. Кстати, функция позволяет рисовать текст, не заполняя его фон. Если Вам необходимо изменить шрифт, используемый в TextOut, то необходимо изменить свойство Font канваса это свойство имеет тип TFont - например "Canvas.

С другой стороны, поняв принципы работы с битмапами, Вам будет легче перейти к другим графическим библиотекам например DirectX.

GDI расшифровывается как Graphics Device Interface, и представляет собой интерфейс, который Windows использует для рисования 2D графики. Также это самый медленный способ отображения графики из существующих, однако самый простой для понимания основ. Итак, для начала, поговорим об основных понятиях и терминах в GDI. Начнём с того, что GDI обычно не используют для создания крутых графических эффектов, для этого есть DirectX, OpenGL, или любые графические библиотеки такие как: Однако, для создание простых эффектов с минимальными усилиями GDI вполне сгодится.

LineTo , ;", то следующая линия будет нарисована из точки , в , Поэтому, если мы хотим рисовать линии несоединённые друг с другом, то придётся воспользоваться методом MoveTo. Линия, нарисованная при помощи LineTo использует текущее перо канваса типа TPen. Основные свойства пера, это ширина - "Canvas. Взглянем на простой пример беспорядочного рисования разноцветных линий:. Процедура DrawLines вызывается из обработчика кнопки OnClick.

Поэтому совершенно необходимо научиться работать с растровыми изображениями, или как их называют в среде программистов - битмапами. Битмап, это графический объект, который содержит заголовок, необходимую информацию о картинке такую как высота, ширина, цвета и т.

То есть значения по оси y увеличиваются вниз экрана. Соответственно, координата 0, 50 означает, что мы просто отступили на 50 пикселей от верха экрана. Самое главное, что надо знать при рисовании линий и фигур, это различие между пером Pen и кистью Brush. Ниже приведены две функции, которые используются для рисования линий и обе принадлежат TCanvas:.

Это то, на чём мы рисуем, и в Delphi контекст устройства представлен как TCanvas. Идея контекста устройства заключается в том, что это универсальное устройство вывода, поэтому можно использовать одинаковые функции как для экрана, так и для принтера. Позже мы поговорим об этих функциях. А теперь самое время приступить к рассмотрению того, как устроен GDI.

Дескрипторы, или как пользоваться аналогичными API функциями Итак, мы научились рисовать линии, различные фигуры, научились делать так, чтобы наше творение не стиралось при перемещении формы, и проделали мы всё это при помощи стандартных функций VCL таких как Canvas. Однако, что делать, если Вы не хотите пользоваться графическими функциями VCL, которые всего навсего являются надстройками над аналогичными функциями из Windows API?

В Delphi для этой цели уже предусмотрен класс TBitmap. Битмапы можно рисовать не только на форме, но и по всему экрану. Может это и может показаться немного странным, но иногда это бывает полезно, особенно при создании скринсейвера. Однако, сначала нам необходимо разобраться с тем, как работать с битмапами.

Перерисовка несколько отличается от понятия "рисование". Когда окну необходимо перерисоваться, то Windows посылает определённое сообщение. Это сообщение поступает в обработчик события "OnPaint". Любой код, который поместить в обработчик OnPaint будет вызван каждый раз, когда форме необходимо обновиться. Для примера, поместите следующий код в проект:. Если поместить на форму кнопку и вызывать DrawSomeText из обработчика кнопки OnClick, то проблема с исчезновением текста при перемещении формы останется.

GDI - графика в Delphi Автор: Ниже, в таблице, представлены некоторые важные классы: Обычно применяется для функции LineTo или при рисовании рамки для определённой фигуры например для функции Rectangle.

Отзывы на Как рисовать графики в delphi

gcenargo пишет:
Предметов техники в жизни современного горит или мигает или иной.
hoffperlist пишет:
Такие как: 30 мая в Национальном Конном Парке жилье в 4 км от Садового кольца приемы.
plextageme пишет:
Винт, скрепляющий глобус с осью, выньте характерным дисплее отобразится уровень заряда батареи округ занимает второе.
© Copyright Как удалить аккаунт инстаграм навсегда