Краткая теория
Компонент TImage,
вкладка панели компонентов Additional
Компонент TTimer,
вкладка панели компонентов System
1. Остановить таймер
Enabled = False
2. Задать интервал
Interval = 200
Об отметках
Основные упражнения не отмечены никакими специальными знаками, их выполнения достаточно для удовлетворительной оценки. Дополнительные упражнения отмечены "звездочками", их выполнение необходимо для получения повышенной оценки.
"5" - в отчете выполнены все основные упражнения, дополнительно выполнены упражнения с одной и двумя "звездочками".
"4" - в отчете выполнены все основные упражнения дополнительно выполнены упражнения с одной "звездочкой".
"3" - в отчете выполнены все основные упражнения.
Упражнения
1. На форме расположить четыре кнопки.
Кнопка Circ - рисует круг.
Кнопка Rect - рисует прямоугольник.
Кнопка H.Line - рисует горизонтальную линию.
Кнопка V.Line - рисует вертикальную линию.
Пример интерфейса
Пример программы
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Canvas.Brush.Color := clLime;
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Pen.Style := psDashDot;
Image1.Canvas.EllipseC(75, 75, 50, 50);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.Brush.Style := bsClear;
Image1.Canvas.Pen.Style := psSolid;
Image1.Canvas.Rectangle(10, 25, 140, 125);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Image1.Canvas.Pen.Style := psSolid;
Image1.Canvas.Line(10, 75, 140, 75);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Image1.Canvas.Pen.Style := psSolid;
Image1.Canvas.Line(75, 10, 75, 140);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Clear;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Brush.Color := clLime;
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Pen.Color := clGreen;
Image1.Canvas.Pen.Style := psSolid;
Image1.Canvas.Pen.Width := 5;
Image1.Canvas.Clear;
end;
2. В поле Edit1 задать радиус круга.
В поле Edit2 задать количество кругов.
В поле Edit3 задать расстояние между центрами кругов.
В ColorBox1 задать цвет заливки круга.
В ColorBox2 задать цвет окружности.
Круги выводятся в горизонтальный ряд
при щелчке по кнопке Button1.
Пример интерфейса
Настройка в Инспекторе объектов
1. ColorBox1
Selected = clLime
2. ColorBox2
Selected = clGreen
Пример программы
procedure TForm1.Button1Click(Sender: TObject);
const
X0 = 50;
Y0 = 50;
var
x : Integer;
i, n : Byte;
step : Integer;
r : Integer;
begin
Image1.Picture.Clear;
Image1.Canvas.Pen.Width := 5;
Image1.Canvas.Brush.Color := ColorBox1.Selected;
Image1.Canvas.Pen.Color := ColorBox2.Selected;
r := StrToInt(Edit1.Text);
n := StrToInt(Edit2.Text);
step := StrToInt(Edit3.Text);
x := X0;
i := 1;
while i <= n do begin
x := X0 + step * (i - 1);
Image1.Canvas.EllipseC(x, Y0, r, r);
Inc(i);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Pen.Style := psSolid;
Image1.Canvas.Pen.Width := 5;
Image1.Picture.Clear;
// Image1.Canvas.FillRect(0,0,Image1.Width,Image1.Height);
end;
3. С помощью компонента TImage и Canvas построить параболу
и оси координат.
Пример интерфейса
Пример программы
procedure TForm1.Button1Click(Sender: TObject);
const
SCALE_X = 20;
SCALE_Y = 20;
START_X = -5;
END_X = 5;
STEP_X = 0.5;
BRUSH_CL = clBlack;
PEN_COLOR = clWhite;
CURVE_COLOR = clLime;
var
m, n : double;
x, y : double;
gx, gy : Integer;
cx, cy : Integer;
begin
Image1.Canvas.Pen.Width:=1;
with Image1 do begin
Canvas.Brush.Color := BRUSH_CL;
Image1.Canvas.Brush.Style := bsSolid;
Canvas.Pen.Color := PEN_COLOR;
Canvas.Rectangle(0,0,Width,Height);
end;
// Ось x
cx := Image1.Canvas.Width div 2;
cy := Image1.Canvas.Height div 2;
Image1.Canvas.Pen.Color := PEN_COLOR;
Image1.Canvas.Line(0, cy, Image1.Width, cy);
// Ось y
Image1.Canvas.Line(cx, 0, cx, Image1.Height);
m := StrToFloat(Edit1.Text);
n := StrToFloat(Edit2.Text);
// start
x := START_X;
y := Sqr(x - m) + n; // y = x^2
gx := cx + Round(SCALE_X*x);
gy := cy - Round(SCALE_Y*y);
Image1.Canvas.MoveTo(gx, gy);
// Парабола.
Image1.Canvas.Pen.Color := CURVE_COLOR;
Image1.Canvas.Pen.Width:=5;
while x <= END_X do begin
y := Sqr(x - m) + n; // y = x^2
gx := cx + Round(SCALE_X*x);
gy := cy - Round(SCALE_Y*y);
Image1.Canvas.LineTo(gx, gy);
x := x + STEP_X;
end;
end;
4.* В задаче 2 добавить кнопку Button2 - вывод кругов
в вертикальный ряд и кнопку Button3 - вывод кругов
в заданное количество колонок и рядов. Количество
колонок и рядов задаются в Edit4 и Edit5.
5.** Изобразить стрелочный секундомер.
Для анимации использовать компонент TTimer.