КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |