Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Работа с областями





function CombineRgn(DestRgn, Rgnl, Rgn2: Cardinal; Com-bineMode: Ineger): Integer; Объединяет две области в одну: DestRgn - дескриптор результирующей области; Rgnl, Rgn2 -дескрипторы объединяемых областей; CombineMode - параметр, указывающий способ объединения; этот параметр, а также возвращаемое значение описаны ниже
function CreateEllipticRgn(XI, Yl, X2, Y2: Integer): Cardinal; Создает эллиптическую область
function CreatePoly-gonRgn(var Points; Count, PolyFillMode: Integer): Cardinal; Создает область в виде многоугольника: Points - массив координат всех вершин многоугольника; Count - количество вершин; PolyFillMode -режим заполнения многоугольника (см. ниже)
function CreateRectRgn(XI, Yl, X2, Y2: Integer): Cardi nal; Создает прямоугольную область    
function CreateRoundRectRgn(Xl, Yl, X2, Y2, X3, Y3: Integer): Cardinal; Создает область со скругленными углами; параметры обращения иллюстрирует
function EqualRgn(Rgnl,Rgn2: Cardibal): Bool; Проверяет эквивалентность двух областей
function FillRgn(DC, Rgn,Brush: Cardinal): Bool; Закрашивает область кистью: DC - дескриптор канвы окна; Rgn - дескриптор области; Brush - дескриптор кисти
function FrameRgn(DC, Rgn,Brush: Cardinal; Width,Height: Integer): Bool; Обводит (но не заполняет) область кистью высотой Height и шириной Width пикселей
function InvertRgn(DC, Rgn:Cardinal): Bool; Инвертирует все пиксели внутри области
function OffsetRgn(DC, Rgn:Cardinal; dX, dY: Integer):Integer; Смещает область на dX по горизонтали и на dY по вертикали
function PaintRgn(DC, Rgn:Cardinal): Bool; Закрашивает область текущей кистью  
function PtInRegion(Rgn:Cardinal; X, Y: Integer):Bool; Проверяет принадлежность точки (X,Y) области Rgn
function RectInRegion(Rgn:Cardinal; Rect: TRect):Bool; Проверяет принадлежность прямоугольника Rect области Rgn  
function SetWindowRgn(DC,Rgn: Cardina; Redraw: Bool): Integer;     Показывает принадлежащую окну с канвой DC область Rgn вместо окна; Redraw- разрешает/запрещает перерисовку области; все не вошедшие в область части окна не показываются (см. ниже)

Параметр combineMode в функции combineRgn можетзначения:

rgn_and - включает в результат общие части областей; rgn_copy -копирует область Rgnl В DestRgn; RGN_DIFF - исключает изRgnl часть, принадлежащую Rgn2; rgn_or - объединяет области; rgn_xor -включает в результат только те части областей, которые не принадлежат им одновременно. Область DestRgn уже должна существовать и иметь размеры, достаточные для размещения объединенной области. При обращении к функции createPoiygonRgn параметр Poly FillModeможет иметь значения: Alternate И Winding.В первом случае заполнение многоугольника идет последовательно между двумя близлежащими его сторонами: сначала между 1-й и 2-й, затем между 2-й и 3-й и т. д. В режиме winding заполняется все внутреннее пространство области.

Во всех случаях Windows автоматически проводит линию между последней и первой точкой многоугольника, делая его замкнутым.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;

Tуре

Tform1 = class (TForm)

PaintBoxl: TPaintBox;

PaintBox2: TPaintBox;

Button1: TButton;

procedure ButtonlClick(Sender: TObject);

Private

{ Private declarations } public

{ Public declarations } end;

Var

Form1: Tform1;

implernentation

$R *.DFM)

procedure TFormI.ButtonlClick(Sender: TObject);

Var

Rgnl, Rgn2: Cardinal;

Const

Points: array [1..5, 1..2]of Integer =

C(91, 0), (160, 183), (0, 70), (183, 70), (23, 183));

Begin

Rgn1:= CreatePolygonRgn(Points, 5, Alternate);

Rgn2:= CreatePolygonRgn(Points, 5, Winding);

with PaintBoxl.Canvas do begin

Brush.Color:= clBlack;

FillRgn(Handle, Rgnl, Brush.Handle);

End;

with PaintBox2.Canvas do begin

Brush.Color:= clBlack;

FillRgn(Handle, Rgn2, Brush.Handle);

End;

End;

End.

Обратите внимание: прорисовка и объединение областей доступны, только если области видны в окне (для создания предыдущего рисунка нельзя, например, использовать обработчик формы OnActivate).

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

16.4.5. Классы TGraphic и TPicture

Важное место в графическом инструментарии Delphi занимают классыTGraphic и TPicture.

TGraphic - это абстрактный класс, инкапсулирующий общие свойства и методы трех своих потомков: пиктограммы (TIcon), метафайла (TMetafile) и растрового изображения (TBitmap). Общей особенностью потомков TGraphic является то, что обычно они сохраняются в файлах определенного формата. Пиктограммы представляют собой небольшие растровые изображения, снабженные специальными средствами, регулирующими их прозрачность. Для файлов пиктограмм обычно используется расширение ico. Метафайл - это изображение, построенное на графическом устройстве с помощью специальных команд, которые сохраняются в файле с расширением wmf или emf. Растровые изображения - это произвольные графические изображения в файлах со стандартным расширением bmp.

Свойства класса TGraphic:

property Empty: Boolean; Содержит True, если с объектом не связано графическое изображение
property Height: Integer; Содержит высоту изображения в пикселях
property Modified: Boolean; Содержит True, если графический объект изменялся
property Palette: HPALETTE; Содержит цветовую палитру графического объекта
property PaletteModified: Boolean; Содержит True, если менялась цветовая палитра графического объекта
property Transparent: Boolean; Содержит True, если объект прозрачен для фона, на котором он изображен
property Width: Integer; Содержит ширину изображения в пикселях
Методы Класса TGraphic:
procedure LoadFromClipooardFormat (AFormat: Word;AData: THandle; APalette:HPALETTE);   Ищет в буфере межпрограммного обмена Clipboard зарегистрированный формат AFormat и, если формат найден, загружает из буфера изображение AData и его палитру Apalette
procedure LoadFromrile(const FileName:String); Загружает изображение из файла FileName
procedure LoadFromStream(Stream: TStream); Загружает изображение из потока данных Stream
procedure SaveToClipboardFormat (var AFormat: Word;var AData: THandle; varAPalette: HPALETTE); Помещает графическое изображение Adata и его цветовую палитру APalette в буфер межпрограммного обмена в формате Af ormat
procedure SaveToFile(constFileName: Strings; Сохраняет изображение в файле FileName
procedure SavePoStream(Stream: TStream); Сохраняет изображение в потоке Stream

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

Свойства класса TPicture:

property Bitmap: TBitmap; Интерпретирует графический объект как растровое изображение
property Graphic: TGraphic; Содержит графический объект
property Height: Integer; Содержит высоту изображения в пикселях
property Icon: TIcon; Интерпретирует графический объект как пиктограмму
property Metafile: TMetafile; Интерпретирует графический объект как метафайл
property width: Integer; Содержит ширину изображения в пикселях

 

Методы классаTPicture:

 

procedure Assign(Source: TPersistent); Связывает собственный графический объект Graphic с объектом Source
procedure LoadFromClipboardFormat (AFormat: Word;AData: THandle; APalette:HPALETTE); Ищет в буфере межпрограммного обмена Clipboard зарегистрированный формат AFormat и, если формат найден, загружает из буфера изображение AData и его палитру APalette
procedure LoadFromFile(const FileName:String); Загружает изображение из файла FileName
class procedure Register; ClipboardFormat(AFormat: Word; AGraphicClass: TGraphicClass); Используется для регистрации в Clipboard нового формата изображения    
class procedure Register; FileFormat (const AExtension, ADescription: String; AGraphicClass: Tgraphic Class); Используется для регистрации нового файлового формата  
class procedure RegisterFileFormatRes(const AExtension: String; ADescriptionResID: Integer; Agraphic Class: TGraphicClass); Используется для регистрации нового формата ресурсного файла
procedure SaveToClipboardFormat (var AFormat: Word; var AData: THandle; varAPalette: HPALETTE); Помещает графическое изображение AData и его цветовую палитру APalette в буфер межпрограммного обмена в формате AFormat
procedure SaveToFile(const FileName: Strings; Сохраняет изображение в файле FileName    
class function SupportsClipboardFormat(AFormat: Word): Boolean; Возвращает True, если формат Aformat зарегистрирован в буфере межпрограммного обмена Clipboard
class procedure UnregisterGraphicClass(AClass:TGraphicClass); Делает недоступными любые графические объекты класса Aclass

 


Список используемой литературы

 

 







Дата добавления: 2015-10-18; просмотров: 400. Нарушение авторских прав; Мы поможем в написании вашей работы!




Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия