Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Окно в графическом режиме




Текущий указатель

 

Чтобы строить изображение, необходимо указывать точку начала вывода. В текстовом режиме эту точку указывает курсор, который виден на экране, если его конечно не убрать. В графическом режиме видимого курсора нет, но есть невидимый текущий указатель СР(Current Pointer). Фактически это тот же курсор только он невидим.

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

Заголовок процедуры:

 

Procedure MoveTo(x, у: Integer)

 

Эта процедура перемещает указатель текущей позиции в точку с заданными координатами, где х,у - координаты точки на экране, в которую будет перемещен указатель. Точка на экране не высвечивается.

Отсчет координат ведётся относительно верхнего левого угла экрана или если есть окно, то относительно верхнего левого угла окна.

Заголовок процедуры:

 

Procedure MoveRel (dx, dy: Integer)

 

Данная процедура перемещает указатель на заданное расстояние относительно его текущего местоположения, где dx, dy - приращения текущих координат х и у.

Например, если первоначальное положение текущего указателя было в точке с координатами (0,0), то процедура MoveTo (100,300) переместит указатель в точку с координатами 100, 300, а процедура MoveRel (5,10) переместит указатель из точки с координатами 100, 300 в точку с координатами 105, 310.

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

Заголовок функции:

 

Function GetX:Integer

 

Эта функция возвращает координаты по горизонтали указателя текущей позиции.

Заголовок функции:

 

Function GetY:Integer

 

Эта функция возвращает координаты по вертикали указателя текущей позиции.

Координаты GetX и GetY отсчитываются относительно левого верхнего угла активного окна, или, если окно не установлено, экрана.

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

Заголовки функций:

 

Function GetMaxX:Integer

Function GetMaxY:Integer

 

Данные функции возвращают текущие координаты разрешений (т.е. число пикселей) по горизонтали и вертикали соответственно. Также с помощью этих функций можно определить координаты центра экрана.

 

Xcenter:=GetMaxX div 2;

Ycenter:=GetMaxY div 2;

Такой способ определения центра экрана избавляет от настройки на конкретный тип монитора.

 

 

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

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

Заголовок процедуры:

 

Procedure SetViewPort(x1, у1, х2, у2: Integer; Clip: Boolean)

 

Где (x1,y1) - координаты, левого верхнего угла, (х2,у2) - координаты правого нижнего угла окна. Параметр Clip определяет, должно ли отображаться на экране то, что не помещается в окне. Параметр Clip может принимать два значения - True и False. Эти значения можно задавать, используя две определенные в модуле константы:

Const

ClipOn = True; {Включить отсечку}

ClipOff = False; {He включать отсечку}

Если параметр Clip имеет значение ClipOn,то часть изображения не помещающаяся в окне, обрезается по его краю. Если параметр Clip имеет значение ClipOff, то изображение будет представлено на экране полностью на рисунке 2.

 
 

 

 


Рисунок 2 Действие параметра Clip

 

На рисунке изображены два окна с разными значениями параметра Clip. Для левого окна Clip равен ClipOff, а для правого ClipOn. Изображение прямоугольника начинается в окне и заканчивается за его пределами. Для первого окнa(ClipOff) прямоугольник отображается полностью, для второго(СliрОn) - обрезается по его краю.

После того как окно создано, координаты его верхнего левого угла становятся равны (0,0).

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

Чтобы стереть все изображения на экране, т.е. очистить его, используется процедура ClearDevice.

Заголовок процедуры:

 

Procedure ClearDevice

 

Данная процедура не имеет параметров. Она очищает экран и перемещает текущий указатель позиции в левый верхний угол, т.е. в точку с координатами (0,0). При очистке экран заполняется цветом фона, установленным процедурой SetBkColor(cм ниже).

Для очистки окна используется процедура ClearViewPort.

Заголовок процедуры:

 

Procedure ClearViewPort

 

Данная процедура не имеет параметров. Она очищает активное окно. Если на экране окна не создавались, то очищается весь экран. При этом фон заполняется цветом из текущей палитры, код которого равен нулю, а текущий указатель помещается в верхний левый угол




Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 920; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.