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

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

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






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; просмотров: 379. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

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

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

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