Студопедия

КАТЕГОРИИ:


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

Практическая работа № 10 Графика




Begin

Const

Implementation

Var

Type

Uses

Interface

Описание плана разработки программы

 

1. Открыть новый проект.

2. Разместить на форме экземпляры компонентов: Label, Timer.

3. Выполнить следующие действия:

3.1. Ввести константы, отвечающие за названия дней недели и месяцев.

3.2. Объявить процедуру ShowTime вручную для доступа к компонентам формы напрямую.

3.3. Процедура ShowTime отображает текущее время.

3.4. Процедура FormTime обрабатывает событие Paint.

3.5. Процедура Timer1Timer обрабатывает сигнал таймера.

3.6. Процедура FormCreate обрабатывает событие OnCreate.

 

Листинг программы:

 

unit Unit1;

 

 

 

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

 

 

TForm1 = class(TForm) Timer1: TTimer;

Label1: TLabel; // время

 

Label2: TLabel; // дата и день недели procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure ShowTime;

 

private

{ Private declarations } public

{ Public declarations } end;

 

 

Form1: TForm1;

 



 

stDay: array [1..7] of string [11] = ('воскресенье','понедельник','вторник', 'среда','четверг','пятница','суббота');

 

stMonth: array [1..12] of string [8] = ('января','февраля','марта', 'апреля','мая','июня','июля', 'августа','сентября','октября', 'ноября','декабря');

 

{$R *.dfm}

 

procedure TForm1.ShowTime;

var Time: TDateTime; //текущее время begin

Time:= Now(); // получить системное время

Label1.Caption:= FormatDateTime('hh:mm:ss',Time); end;

 

procedure TForm1.Timer1Timer(Sender: TObject); begin

 

ShowTime; // отобразить время end;

 

procedure TForm1.FormCreate(Sender: TObject); var

 

Present: TDateTime; // текущая дата и время Year, Month, Day: Word; // год, месяц и число, как

 

// отдельные числа

Present:= Now; // получить текущую дату

DecodeDate(Present, Year, Month, Day); Label2.Caption:= 'Сегодня '+IntToStr(Day)+ ' ' + stMonth[Month] + ' '+ IntToStr(Year)+

 

' года, '+ stDay[DayOfWeek(Present)];

 

// настроить и запустить таймер

 

Timer1.Interval:= 1000; // период сигналов таймера 1 с Timer1.Enabled:= True; // пуск таймера

end;

 

procedure TForm1.FormPaint(Sender: TObject); begin

 

ShowTime; // отобразить часы end;

 

end.


 

Для рисования статичных рисунков используется компонент PaintBox (панель System). Этот компонент размещается на форме в виде прозрачного пунктирного квадрата, и в его пределах можно рисовать. Рисование выполняется обращением к свойству Canvas (графическая канва) этого компонента: PaintBox1.Canvas. У него в свою очередь есть свойство Pixels (PaintBox1.Canvas.Pixels), которое представляет собой матрицу, двумерный массив заданного размера - поточечный образ канвы, каждый элемент - отдельная точка. В Pixels[] отсчет точек (пикселов экрана) начинается с 0.

 

Координаты x, y отсчитываются от верхнего левого угла, то есть он считается точкой с координатой (0, 0), увеличение по оси x идет слева направо, а по оси y - сверху вниз. Для конкретной точки указывается цвет. Функция RGB() формирует цвет комбинацией интенсивности красного, зеленого и синего (интенсивность задается числом от 0 до 255).

 

Например, черный - RGB(0,0,0), красный - rgb(255,0,0), синий - rgb(0,0,255), белый - rgb(255,255,255).

Цель работы -создать программу,выполняющую следующие действия:

1. Разместить на форме компонент PaintBox.

2. Заполнить доступную канву 300 красными точками в случайных позициях по нажатиям на некоторую кнопку.

3. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.

4. Записать код в обработчике нажатия.

 

 

Рис. 49.

 

procedure TForm1.Button1Click(Sender: TObject); var i,x,y: Integer;

 

begin randomize;

 

for i:= 1 to 300 do begin

x:= random(100); y:= random(100);

 

PaintBox1.Canvas.Pixels[x,y]:= RGB(255,0,0); end

end;

5. Изменить RGB(255,0,0) на RGB(random(255),random(255),random(255)).


 

 

 

Рис. 50.

 

6. Заполнить фон черным цветом перед началом выполнения программы с помощью метода канвы FillRect. Метод вызывается с указанием прямоугольной области заливки цветом: FillRect(Rect(0, 0, 100, 100)) // координаты верхнего левого и правого нижнего углов Вложенное слово Rect формирует данное типа "прямоугольник". Перед вызовом FillRect

 

надо указать цвет заливки: PaintBox1.Canvas.Brush.Color:= RGB(0,0,0);

 

Рис. 51.

 

procedure TForm1.Button1Click(Sender: TObject); var i,x,y: Integer;

 




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


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


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



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




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