Лабораторная работа №05 icon

Лабораторная работа №05



НазваниеЛабораторная работа №05
Дата конвертации30.06.2012
Размер41.49 Kb.
ТипЛабораторная работа
1. /OOP/Лабораторная работа ь00-Введение.doc
2. /OOP/Лабораторная работа ь01-Calc&Type.doc
3. /OOP/Лабораторная работа ь02-Drag&Except.doc
4. /OOP/Лабораторная работа ь03-Font&Phrase.doc
5. /OOP/Лабораторная работа ь04-Menu.doc
6. /OOP/Лабораторная работа ь05-Canvas.doc
7. /OOP/Лабораторная работа ь06-Animation.doc
8. /OOP/Лабораторная работа ь07-Hint&Format.doc
9. /OOP/Лабораторная работа ь08-Notepad&BMP.doc
10. /OOP/Лабораторная работа ь09-StringGrid.doc
11. /OOP/Лабораторная работа ь10-MediaPlayer.doc
12. /OOP/Лабораторная работа ь11-Shape.doc
13. /OOP/Лабораторная работа ь12-Events.doc
14. /OOP/Лабораторная работа ь13-Finally&Except.doc
15. /OOP/Лабораторная работа ь14-Animal.doc
16. /OOP/Лабораторная работа ь15-MyButton.doc
17. /OOP/Темы курсовых работ по курсу ООП.doc
Введение
Лабораторная работа №01
Лабораторная работа №02
Лабораторная работа №03
Лабораторная работа №04
Лабораторная работа №05
Лабораторная работа №06
Лабораторная работа №07
Лабораторная работа 08
Лабораторная работа №09
Лабораторная работа №10
Свойства в Delphi
Лабораторная работа №12 События в Delphi
Chapter 12
Лабораторная работа №14
Лабораторная работа №15
Кнопка (TButton)

Лабораторная работа №05.

Получение ввода от мыши. Рисование в форме.


Когда пользователь нажимает одну из кнопок мыши, указатель которой находится над формой (или над компонентом), Windows посылает приложению несколько сообщений.
Для написания кода, откликающегося на эти сообщения, Delphi определяет несколько событий. Основных событий два : OnMouseDown, которое происходит при нажатии одной из кнопок мыши, и OnMouseUp, которое происходит при освобождении кнопки.

Еще одно важное системное сообщение связано с перемещением мыши – сообщение OnMouseMove. Событие OnClick также доступно и в форме. Его основной смысл состоит в том, что левая кнопка мыши нажимается и отпускается над одним и тем же окном или компонентом. Однако в период между этими двумя действиями курсор может переместиться за пределы окна или компонента, причем левая кнопка мыши будет удерживаться нажатой. Если вы в определенной позиции нажмете кнопку мыши, а затем переместите мышь в другое место и отпустите кнопку, то щелчок не произойдет. В этом случае окно получает только сообщение о нажатии, несколько сообщений о перемещении и сообщение об освобождении.

События, связанные с мышью


Метод, соответствующий событию OnMouseDown имеет несколько параметров:


procedure TForm1.FormMouseDown (

Sender : TObject ;

Button : TMouseButton ;

Shift : TShiftState ;

X, Y : Integer ) ;


Кроме обычного параметра Sender здесь присутствуют еще четыре :

  1. Button – показывает, какая из трех кнопок мыши была нажата. Возможные значения : mbRight, mbLeft, mbCenter.

  2. Shift – показывает, какие влияющие на мышь клавиши были нажаты при возникновении события. Такой клавишей может быть Alt, Ctrl или Shift, нажатая вместе с самой кнопкой мыши. Данный параметр имеет тип множества, т.к. несколько клавиш могут быть нажаты одновременно. Это означает, что при анализе условия вы должны применять не проверку на равенство, а оператор in.

  3. X и Y – показывают координаты позиции мыши относительно клиентской области.

Рисование в форме


Canvas (холст) – это область рисунка в форме и многих других графических компонентах. Чтобы получить доступ к пикселам формы, используйте свойство формы Canvas и свойство Pixels для Canvas. Свойство Pixels – это двумерный массив, соответствующий цветам отдельных пикселов в Canvas. Canvas.Pixels[10,20] соответствует цвету пиксела, который находится на 10 пикселов правее и на 20 пикселов ниже точки отсчета. Обращайтесь с массивом пикселов как с любым другим свойством; чтобы изменить цвет пиксела присвойте новое значение. Чтобы определить цвет пиксела – прочитайте значение.

Каждое свойство Canvas имеет воображаемое перо для рисования линий и контуров. Свойство Pen (перо) определяет цвет и размер линий и границ фигур. Свойствами пера являются его цвет, размер (если это сплошная линия) или стиль. Работая с пером, вы можете прочитать (но не изменить) его текущую позицию (свойство PenPos). Позиция пера определяет исходную точку следующей линии, которую программа может нарисовать с помощью метода LineTo. Для изменения позиции вы можете применить метод MoveTo канвы.

Свойство Brush (кисть) определяет цвет очерченой поверхности. Кисть используется для закрашивания замкнутых фигур. Свойствами кисти являются ее цвет, стиль и иногда растровое изображение.

Свойство Font определяет шрифт, который используется методом холста TextOut для написания текста в форме. Шрифт имеет имя, размер, стиль, цвет и т.п.

Задание № 1


  1. Поместить в форму меню Color c командами PenColor и BrushColor, которые будут соответственно изменять цвет пера и кисти с помощью стандартной диалоговой панели.

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

  3. Запишите следующий код для события OnMouseDown :


if Button = mbLeft then

begin

Center.X := X;

Center.Y := Y;

if ssShift in Shift then

Circle := False

else

Circle := True;

end;


Поле формы Circle типа Boolean определяет вид фигуры, значения координат центра фигуры записываются в поля формы Center типа TPoint.

  1. Запишите следующий код для события OnMouseUp :


Radius.X := abs(Center.X - X);

Radius.Y := abs (center.Y-Y);

if Circle then

Canvas.Ellipse(Center.X- Radius.X, Center.Y- Radius.Y, Center.X+ Radius.X, Center.Y+ Radius.Y)

else

Canvas.Rectangle(Center.X- Radius.X, Center.Y- Radius.Y, Center.X+ Radius.X, Center.Y+ Radius.Y);


  1. Запишите следующий код для события OnMouseMove :


Caption := Format ('Координаты : x=%d, y=%d ' , [X, Y]);


  1. Запустите приложение. Если все сделано правильно, то вы будете наблюдать изменение координат в заголовке формы при продвижении мыши; сможете рисовать окружности и эллипсы нужного размера (щелкая кнопкой и удерживая ее при перемещении мыши по горизонтали и вертикали); сможете рисовать прямоугольник нужного размера, используя ту же технологию.

Черчение и рисование в системе Windows


  • Черчение – вы обращаетесь к канве и вызываете некоторые ее методы. Поскольку изображение не сохраняется, форма может частично или целиком потерять свое содержимое (при закрытии окна формы другим окном или при уменьшении размера окна формы ).

  • Рисование – это технология, которая позволит приложению перерисовывать всю ее поверхность при любых возможных условиях.

Для вызова перерисовки можно использовать методы Invalidate, UpDate, ReFresh и Repaint.

Задание № 2


  1. Начиная с оператора if., код для события OnMouseUp перенести в код для события OnPaint.

  2. В код для события OnMouseUp вставить в конце вызов метода Invalidate ( который вызывает косвенно метод FormPaint, связанный с событием OnPaint).

  3. Запустить приложение. При правильном выполнении всех инструкций, в форме будет рисоваться только одна фигура.

  4. Выполните первое задание для компонента PainBox.



Задание № 3


Составить программу – простой графический редактор.



Редактор должен как открывать существующие графические изображения, так и рисовать и сохранять сам (по вариантам):

  1. Прямые линии и пером

  2. Окружности и эллипсы

  3. Прямоугольники и квадраты

В редакторе необходимо предусмотреть изменение цвета линий и заливки. А также дополнительные возможности (по вариантам):

1. Изменение масштаба рисунка

2. Возможность копирования, вырезания и вставки

3. Вывода координат курсора




Похожие:

Лабораторная работа №05 iconЛабораторная работа: создание мини-презентации «Памятники Кремля»
Лабораторная работа проводится в компьютерном классе, с подключением к сети Internet
Лабораторная работа №05 iconДокументы
1. /Lab1/Лабораторная работа 1.doc
2. /Lab2/Лабораторная...

Лабораторная работа №05 iconИ я забуду Покажи мне и я запомню, Дай мне действовать самому и я научусь. Китайская мудрость Тема: Лабораторная работа
Тема: «Лабораторная работа «Измерение работы и мощности тока в электрической лампочке»
Лабораторная работа №05 iconДокументы
1. /Nash/lab1/Лабораторная работа ь1.doc
2. /Nash/lab10/Лабораторная...

Лабораторная работа №05 iconЛабораторная работа №2 «Система безопасности Windows xp»
Лабораторная работа №2 «Система безопасности Windows xp» Цель работы: Изучить систему безопасности Windows xp
Лабораторная работа №05 iconЛабораторная работа «Работа в Windows c помощью основного меню. Использование технологии ole»
Запишите размер папки, выраженный в Мб (мегабайтах) в текстовый редактор блокнот
Лабораторная работа №05 iconЛабораторная работа «Работа с текстовыми фрагментами без помощи мыши»
Скопируйте последнее слово получившегося текста и вставьте его в начало текста один раз
Лабораторная работа №05 iconДокументы
1. /Базовые задачи на обработку массива.doc
2. /ЗадачиНаЛиниВетвление.doc
Лабораторная работа №05 iconДокументы
1. /laba/Лабораторная работа ь1.doc
2. /laba/Лабораторная...

Лабораторная работа №05 iconДокументы
1. /механизация/~$б работа ь4.doc
2. /механизация/~$бораторная...

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов