У каких компонентов есть свойство canvas

У ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты — TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid. Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Используя Canvas, Вы можете воспроизводить на форме любые графические объекты — картинки, многоугольники, текст и т.п. без использования компонент TImage, TShape и TLabel (т.е. без использования дополнительных ресурсов), однако при этом Вы должны обрабатывать событие OnPaint того объекта, на канве которого Вы рисуете. Событие OnPaint наступает, когда приходит сообщение Windows о необходимости перерисовать испорченное изображение. Изображение может испортится из-за временного перекрытия данного окна другим окном того же или постороннего приложения. Обработчик данного события должен перерисовать изображение. При перерисовке изображения канвы Canvas можно использовать свойство ClipRect, которое указывает область канвы, внутри которой изображение испорчено. Рассмотрим подробнее свойства и методы объекта Canvas.
Свойства Canvas :
Brush —кисть, является объектом со своим набором свойств:
Bitmap — картинка размером строго 8×8, используется для заполнения (заливки) области на экране.
Color— цвет заливки.
Style — предопределенный стиль заливки; это свойство конкурирует со свойством Bitmap — какое свойство Вы определили последним, то и будет определять вид заливки.
Pen — карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:
Color — цвет линии
Mode — режим вывода: простая линия, с инвертированием, с выполнением исключающего или и др.
Style — стиль вывода: линия, пунктир и др.
Width — ширина линии в точках
ClipRect — (только чтение) прямоугольник, на котором происходит графический вывод.
CopyMode — свойство канвы определяет режим копирования графического изображения на канву методом CopyRect или при рисовании объекта TBitmap. Используя свойство можно достичь различных эффектов объединения изображений и их комбинирования. Возможны следующие значения свойства CopyMode (используемые константы определены в модуле Windows):
cmBlackness — заполняет область канвы, в которую производится копирование, черным цветом. Собственное изображение на канве и копируемое изображение игнорируются.
CmDstInvert — инвертирует изображение на канве. Копируемое изображение игнорируется.
CmMergeCopy — комбинирует изображение канвы и копируемое изображение, используя булеву операцию AND. То же, что cmSrcAnd.
CmMergePaint — комбинирует изображение канвы и инверсию копируемого изображения, используя булеву операцию OR.
CmNotSrcCopy — копирует на канву инверсное изображение. Собственное изображение на канве игнорируется.
CmNotSrcErase — комбинирует изображения канвы и копируемого изображения, используя булеву операцию OR, а затем инвертирует результат.
CmPatCopy — копирует шаблон источника на канву. Собственное изображение на канве игнорируется.
CmPatInvert — комбинирует изображение канвы и шаблон источника, используя булеву операцию XOR.
CmPatPaint — комбинирует инверсное изображение источника и его шаблон, используя булеву операцию OR. Затем этот результат комбинирует с изображением канвы, используя булеву операцию OR.
CmSrcAnd — комбинирует изображения канвы и источника, используя булеву операцию AND. То же, что cmMergeCopy.
CmSrcCopy — копирует изображение источника на канву. Собственное изображение на канве игнорируется. Этот режим принят по умолчанию.
CmSrcErase — инвертирует изображение на канве и комбинирует результат с изображением источника, используя булеву операцию AND.
CmSrcInvert — комбинирует изображения канвы и источника, используя булеву операцию XOR. Повторное копирование восстанавливает прежнее изображение на канве.
CmSrcPaint — комбинирует изображения канвы и источника, используя булеву операцию OR.
CmWhiteness — заполняет область канвы, в которую производится копирование, белым цветом. Собственное изображение на канве и копируемое изображение игнорируются.
Font — шрифт, которым выводится текст (метод TextOut).
Handle — данное свойство дает возможность использовать кисть в прямых вызовах процедур Windows API.
PenPos— текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства.
Pixels — двухмерный массив элементов изображения (pixel) определяет цвет пикселя канвы с координатами X и Y в пределах текущей области ClipRect. Если заданы координаты пикселя вне области ClipRect, то при чтении свойства Pixels возвращается значение -1.
Рассмотрим пример (рис.2) в котором показано, как осуществить доступ к отдельной точке на изображении (на канве). По нажатию кнопки “Fill” всем точкам изображения присваивается свой цвет:
procedure TForm1.Button1Click(Sender: TObject);
var i, j : Longint;
Begin
Button1.Enabled:=False;

КАТЕГОРИИ:
Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)
У ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты — TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid.
Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Cвойство Canvas предоставляет доступ к графическому образу объекта на экране.
Canvas обладает рядом графических методов: Draw, TextOut, Arc, Rectangle и др. Используя Canvas, Вы можете воспроизводить на форме любые графические объекты — картинки, многоугольники, текст и т.п. без использования компонент TImage,TShape и TLabel (т.е. без использования дополнительных ресурсов). Однако при этом необходимо обрабатывать событие OnPaint того объекта, на канве которого производится рисование. Рассмотрим подробнее свойства и методы объекта Canvas.
Свойства Canvas :
Brush — кисть, является объектом со своим набором свойств:
Bitmap — картинка размером строго 8×8, используется для заполнения (заливки) области на экране.
Color — цвет заливки.
Style — предопределенный стиль заливки; это свойство конкурирует со свойством Bitmap — какое свойство Вы определили последним, то и будет определять вид заливки.
Handle — данное свойство дает возможность использовать кисть в прямых вызовах процедур Windows API .
ClipRect — (только чтение) прямоугольник, на котором происходит графический вывод.
CopyMode — свойство определяет, каким образом будет происходить копирование (метод CopyRect) на данную канву изображения из другого места: один к одному, с инверсией изображения и др.
Font — шрифт, которым выводится текст (метод TextOut).
Handle — данное свойство используется для прямых вызовов Windows API.
Pen — карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:
Color — цвет линии
Handle — для прямых вызовов Windows API
Mode — режим вывода: простая линия, с инвертированием, с
выполнением исключающего или и др.
Style — стиль вывода: линия, пунктир и др.
Width — ширина линии в точках
PenPos — текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства.
Pixels — двухмерный массив элементов изображения (pixel), с его помощью Вы получаете доступ к каждой отдельной точке изображения (см. пример к данному уроку).
Методы Canvas:
Методы для рисования простейшей графики — Arc, Chord, LineTo, Pie, Polygon, PolyLine, Rectangle, RoundRect. При прорисовке линий в этих методах используются карандаш (Pen) канвы, а для заполнения внутренних областей — кисть (Brush).
Методы для вывода картинок на канву — Draw и StretchDraw, В качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetafile).
StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку).
Методы для вывода текста — TextOut и TextRect. При выводе текста используется шрифт (Font) канвы. При использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight.
Рассмотрим два примера использования графических компонентов.
Дата добавления: 2014-01-07; Просмотров: 625; Нарушение авторских прав?
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Рекомендуемые страницы:
Читайте также:
HTML5 тег <canvas> используется для отображения графики на лету при помощи скриптов (обычно JavaScript).
Тем не менее, сам по себе элемент <canvas> не имеет инструментария для рисования. Это всего лишь контейнер для графики. Чтобы в действительности что-то нарисовать в элементе <canvas>, необходимо использовать соответствующий скрипт.
Метод getContext() возвращает объект, предоставляющий методы и свойства для рисования в элементе <canvas>.
В данном справочнике приводится информация о свойствах и методах объекта getContext(«2d»), который может использоваться для вывода в элементе <canvas> текста, линий, прямоугольников, кругов и др.
Internet Explorer 9, Firefox, Opera, Chrome и Safari поддерживают элемент <canvas> и его свойства и методы. Internet Explorer 8 и более ранние версии не поддерживают элемент <canvas>.
Свойство | Описание |
---|---|
fillStyle | Устанавливает/возвращает цвет, градиент или шаблон, используемый для заливки графического объекта |
shadowBlur | Устанавливает/возвращает уровень размытости для теней |
shadowColor | Устанавливает/возвращает цвет для теней |
shadowOffsetX | Устанавливает/возвращает горизонтальное расстояние тени от фигуры |
shadowOffsetY | Устанавливает/возвращает вертикальное расстояние тени от фигуры |
strokeStyle | Устанавливает/возвращает цвет, градиент или шаблон, используемый для обводки фигуры |
Свойство | Описание |
---|---|
lineCap | Устанавливает/возвращает стиль концов нарисованной линии |
lineJoin | Устанавливает/возвращает тип угла, созданного пересечением двух линий |
lineWidth | Устанавливает/возвращает ширину текущей линии |
miterLimit | Устанавливает/возвращает максимальную длину среза |
Метод | Описание |
---|---|
clearRect() | Очищает заданную область пикселей внутри данного прямоугольника |
fillRect() | Рисует «залитый» прямоугольник |
rect() | Создает прямоугольник |
strokeRect() | Рисует прямоугольник (без заливки) |
Метод | Описание |
---|---|
arc() | Создает дугу/кривую (используется для создания окружностей или их части) |
arcTo() | Создает дугу/кривую между двумя касательными |
beginPath() | Начинает контур или сбрасывает текущий контур |
bezierCurveTo() | Создает кубическую кривую Безье |
clip() | Обрезает область любой формы и размера, находящуюся вне указанного контура |
closePath() | Замыкает контур соединяя последнюю точку с первой |
fill() | Делает заливку текущей фигуры (контура) |
isPointInPath() | Возвращает значение true, если заданная точка находится внутри текущего контура, в обратном случае возвращается значение false |
lineTo() | Добавляет новую точку контура и создает линию к этой точке от последней заданной точки |
moveTo() | Передвигает точку контура в заданные координаты не рисуя линию |
quadraticCurveTo() | Создает квадратичную кривую Безье |
stroke() | В действительности рисует определенный вами контур |
Метод | Описание |
---|---|
rotate() | Поворачивает текущий графический объект |
scale() | Изменяет масштаб текущего графического объекта |
setTransform() | Сбрасывает текущую матрицу трансформации в начальное состояние, а затем вызывает метод transform() с теми же параметрами |
transform() | Применяет заданную матрицу трансформации |
translate() | Ретранслирует позицию (0,0) в новое место |
Свойство | Описание |
---|---|
font | Устанавливает/возвращает свойства шрифта для текстового содержимого |
textAlign | Устанавливает/возвращает выравнивание для текстового содержимого |
textBaseline | Устанавливает/возвращает базовую линию, используемую при выводе текста |
Метод | Описание |
---|---|
drawImage() | Рисует изображение, содержимое другого элемента <canvas> или видео |
Свойство | Описание |
---|---|
data | Возвращает объект, содержащий данные изображения заданного объекта ImageData |
height | Возвращает высоту объекта ImageData |
width | Возвращает ширину объекта ImageData |
Метод | Описание |
---|---|
createImageData() | Создает новый, пустой объект ImageData |
getImageData() | Возвращает объект ImageData, который копирует пиксельные данные заданной прямоугольной области холста |
putImageData() | Помещает данные изображения (из заданного объекта ImageData) обратно в элемент <canvas> |
Свойство | Описание |
---|---|
globalAlpha | Устанавливает/возвращает текущее значение прозрачности или альфа-канала графического объекта |
globalCompositeOperation | Устанавливает/возвращает то, как исходное (новое) изображение нарисовано на целевом (существующем) изображении |
Другое
Метод | Описание |
---|---|
save() | Сохраняет состояние текущего контекста |
restore() | Возвращает ранее сохраненное состояние и атрибуты |
createEvent() | |
getContext() | |
toDataURL() |
Вверх Вывод изображений в canvas
HTML5 тег <canvas> используется для отображения графики на лету при помощи скриптов (обычно JavaScript).
Тем не менее, сам по себе элемент <canvas> не имеет инструментария для рисования. Это всего лишь контейнер для графики. Чтобы в действительности что-то нарисовать в элементе <canvas>, необходимо использовать соответствующий скрипт.
Метод getContext() возвращает объект, предоставляющий методы и свойства для рисования в элементе <canvas>.
В данном справочнике приводится информация о свойствах и методах объекта getContext(«2d»), который может использоваться для вывода в элементе <canvas> текста, линий, прямоугольников, кругов и др.
Internet Explorer 9, Firefox, Opera, Chrome и Safari поддерживают элемент <canvas> и его свойства и методы. Internet Explorer 8 и более ранние версии не поддерживают элемент <canvas>.
Цвета, стили, тени¶
Свойства:
fillStyle
Устанавливает/возвращает цвет, градиент или шаблон, используемый для заливки графического объекта
shadowBlur
Устанавливает/возвращает уровень размытости для теней
shadowColor
Устанавливает/возвращает цвет для теней
shadowOffsetX
Устанавливает/возвращает горизонтальное расстояние тени от фигуры
shadowOffsetY
Устанавливает/возвращает вертикальное расстояние тени от фигуры
strokeStyle
Устанавливает/возвращает цвет, градиент или шаблон, используемый для обводки фигуры
Методы:
addColorStop()
Определяет цвета и позицию остановки в объекте градиента
createLinearGradient()
Создает линейный градиент (для использования с содержимым элемента <canvas>)
createPattern()
Размножает заданный элемент в заданном направлении
createRadialGradient()
Создает радиальный/круговой градиент (для использования на содержимом элемента <canvas>)
Стили линий¶
Свойства:
lineCap
Устанавливает/возвращает стиль концов нарисованной линии
lineJoin
Устанавливает/возвращает тип угла, созданного пересечением двух линий
lineWidth
Устанавливает/возвращает ширину текущей линии
miterLimit
Устанавливает/возвращает максимальную длину среза
Прямоугольники¶
Методы:
clearRect()
Очищает заданную область пикселей внутри данного прямоугольника
fillRect()
Рисует «залитый» прямоугольник
rect()
Создает прямоугольник
strokeRect()
Рисует прямоугольник (без заливки)
Контуры¶
Методы:
arc()
Создает дугу/кривую (используется для создания окружностей или их части)
arcTo()
Создает дугу/кривую между двумя касательными
beginPath()
Начинает контур или сбрасывает текущий контур
bezierCurveTo()
Создает кубическую кривую Безье
clip()
Обрезает область любой формы и размера, находящуюся вне указанного контура
closePath()
Замыкает контур соединяя последнюю точку с первой
fill()
Делает заливку текущей фигуры (контура)
isPointInPath()
Возвращает значение true, если заданная точка находится внутри текущего контура, в обратном случае возвращается значение false
lineTo()
Добавляет новую точку контура и создает линию к этой точке от последней заданной точки
moveTo()
Передвигает точку контура в заданные координаты не рисуя линию
quadraticCurveTo()
Создает квадратичную кривую Безье
stroke()
В действительности рисует определенный вами контур
Трансформации¶
Методы:
rotate()
Поворачивает текущий графический объект
scale()
Изменяет масштаб текущего графического объекта
setTransform()
Сбрасывает текущую матрицу трансформации в начальное состояние, а затем вызывает метод transform() с теми же параметрами
transform()
Применяет заданную матрицу трансформации
translate()
Ретранслирует позицию (0,0) в новое место
Текст¶
Свойства:
font
Устанавливает/возвращает свойства шрифта для текстового содержимого
textAlign
Устанавливает/возвращает выравнивание для текстового содержимого
textBaseline
Устанавливает/возвращает базовую линию, используемую при выводе текста
Методы:
fillText()
Рисует текст с заливкой
measureText()
Возвращает объект, содержащий ширину заданного текста
strokeText()
Рисует текст без заливки
Вывод изображений¶
Методы:
drawImage()
Рисует изображение, содержимое другого элемента <canvas> или видео
Пиксельные манипуляции¶
Свойства:
data
Возвращает объект, содержащий данные изображения заданного объекта ImageData
height
Возвращает высоту объекта ImageData
width
Возвращает ширину объекта ImageData
Методы:
createImageData()
Создает новый, пустой объект ImageData
getImageData()
Возвращает объект ImageData, который копирует пиксельные данные заданной прямоугольной области холста
putImageData()
Помещает данные изображения (из заданного объекта ImageData) обратно в элемент <canvas>
Компоновка¶
Свойства:
globalAlpha
Устанавливает/возвращает текущее значение прозрачности или альфа-канала графического объекта
globalCompositeOperation
Устанавливает/возвращает то, как исходное (новое) изображение нарисовано на целевом (существующем) изображении
Другое¶
Методы:
save()
Сохраняет состояние текущего контекста
restore()
Возвращает ранее сохраненное состояние и атрибуты
createEvent()
getContext()
Возвращает контекст рисования на холсте
toDataURL()
Возвращает URI данных, содержащий представление изображения в формате, заданном параметром типа
Рисование и закраскаСодержаниеОбзор ОбзорИз данной статьи Вы узнаете о том, какие возможности есть в Delphi для создания приложений, использующих графику; как использовать компоненты для отображения картинок; какие средства есть в Delphi для оформления программы. Кроме того, познакомитесь с важным свойством Canvas, которое предоставляет доступ к графическому образу объекта на экране. Графические компонентыВ стандартную библиотеку визуальных компонент Delphi входит несколько объектов, с помощью которых можно придать своей программе совершенно оригинальный вид. Это — TImage (TDBImage), TShape, TBevel. TImage позволяет поместить графическое изображение в любое место на форме. Этот объект очень прост в использовании — выберите его на странице Additional и поместите в нужное место формы. Собственно картинку можно загрузить во время дизайна в редакторе свойства Picture (Инспектор Объектов). Картинка должна храниться в файле в формате BMP (bitmap), WMF (Windows Meta File) или ICO (icon). (TDBImage отображает картинку, хранящуюся в таблице в поле типа BLOB. При этом доступен только формат BMP.) Как известно, форматов хранения изображений гораздо больше трех вышеназванных (например, наиболее известны PCX, GIF, TIFF, JPEG). Для включения в программу изображений в этих форматах нужно либо перевести их в формат BMP, либо найти библиотеки третьих фирм, в которых есть аналог TImage, «понимающий» данные форматы (есть как VBX объекты, так и «родные» объекты для Delphi). При проектировании следует помнить, что изображение, помещенное на форму во время дизайна, включается в файл .DPR и затем прикомпилируется к EXE файлу. Поэтому такой EXE файл может получиться достаточно большой. Как альтернативу можно рассмотреть загрузку картинки во время выполнения программы, для этого у свойства Picture (которое является объектом со своим набором свойств и методов) есть специальный метод LoadFromFile. Это делается, например, так: if OpenDialog1.Execute then Важными являются свойства объекта Center и Stretch — оба имеют булевский тип. Если Center установлено в True, то центр изображения будет совмещаться с центром объекта TImage. Если Stretch установлено в True, то изображение будет сжиматься или растягиваться таким образом, чтобы заполнить весь объект TImage. TShape — простейшие графические объекты на форме типа круг, квадрат и т.п. Вид объекта указывается в свойстве Shape. Свойство Pen определяет цвет и вид границы объекта. Brush задает цвет и вид заполнения объекта. Эти свойства можно менять как во время дизайна, так и во время выполнения программы. TBevel — объект для украшения программы, может принимать вид рамки или линии. Объект предоставляет меньше возможностей по сравнению с TPanel, но не занимает ресурсов. Внешний вид указывается с помощью свойств Shape и Style. Свойство объектов CanvasУ ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты — TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid. Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Canvas обладает также рядом графических методов : Draw, TextOut, Arc, Rectangle и др. Используя Canvas, Вы можете воспроизводить на форме любые графические объекты — картинки, многоугольники, текст и т.п. без использования компонент TImage,TShape и TLabel (т.е. без использования дополнительных ресурсов), однако при этом Вы должны обрабатывать событие OnPaint того объекта, на канве которого Вы рисуете. Рассмотрим подробнее свойства и методы объекта Canvas. Свойства Canvas : Brush -кисть, является объектом со своим набором свойств:
ClipRect — (только чтение) прямоугольник, на котором происходит графический вывод. CopyMode— свойство определяет, каким образом будет происходить копирование (метод CopyRect) на данную канву изображения из другого места: один к одному, с инверсией изображения и др. Font — шрифт, которым выводится текст (метод TextOut). Handle — данное свойство используется для прямых вызовов Windows API. Pen — карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:
PenPos — текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства. Pixels — двухмерный массив элементов изображения (pixel), с его помощью Вы получаете доступ к каждой отдельной точке изображения (см. пример к данному уроку). Методы Canvas: Методы для рисования простейшей графики — Arc, Методы для вывода картинок на канву — Draw и StretchDraw, В качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetafile). StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку). Методы для вывода текста — TextOut и TextRect. При выводе текста используется шрифт (Font) канвы. При использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight. Объект TPaintBoxНа странице System Палитры Компонент есть объект TPaintBox, который можно использовать для построения приложений типа графического редактора или, например, в качестве места построения графиков (если, конечно, у Вас нет для этого специальных компонент третьих фирм). Никаких ключевых свойств, кроме Canvas, TPaintBox не имеет, собственно, этот объект является просто канвой для рисования. Важно, что координаты указателя мыши, передаваемые в обработчики соответствующих событий (OnMouseMove и др.), являются относительными, т.е. это смещение мыши относительно левого верхнего угла объекта TPaintBox, а не относительно левого верхнего угла формы. ПримерыВ первом примере (проект SHAPE.DPR, рис.1) показано, как во время выполнения программы можно изменять свойства объекта TShape. Изменение цвета объекта (событие OnChange для ColorGrid1): procedure TForm1.ColorGrid1Change(Sender: TObject); Рис.A: Пример с TShape Во втором примере (проект PIXELS.DPR, рис.2) показано, как осуществить доступ к отдельной точке на изображении (на канве). По нажатию кнопки «Fill» всем точкам изображения присваивается свой цвет: procedure TForm1.Button1Click(Sender: TObject); Рис.B: Работа с точками на канве. В третьей программе (проект DRAW.DPR, рис.3) приведен пример использования методов, выводящих изображение — Draw и StretchDraw: Рис.C: Вывод изображений на канву. Прорисовка изображений происходит в обработчике события OnPaint для формы: procedure TForm1.FormPaint(Sender: TObject); Назад | Содержание |