Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Остов ВТП.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Interface

uses

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

type

TForm1 = class(TForm)

Panel1: TPanel; {панель для размещения кнопки «Очистить»}

Button1: TButton; {кнопка «Очистить»}

Panel2: TPanel; {панель для размещения кнопок выбора цвета}

Image1: TImage; {экран для рисования}

Button2: TButton; {кнопка задания красного цвета}

Button3: TButton; {кнопка задания зеленого цвета}

Button4: TButton; {кнопка задания синего цвета}

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

drag: boolean; {логическая переменная для определения состояния мыши}

Implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

Image1.Canvas.FillRect(ClientRect); {очистка экрана нажатием клавиши «Очистить»}

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Image1.Canvas.Pen.Color := clRed; {установка красного цвета карандаша}

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Image1.Canvas.Pen.Color := clGreen; {установка зеленого цвета карандаша}

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Image1.Canvas.Pen.Color := clBlue; {установка синего цвета карандаша}

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Image1.Canvas.Pen.Color := clBlack; {установка черного цвета карандаша при запуске программы}

Image1.Canvas.Pen.Width := 3; {установка толщины карандаша}

end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TmouseButton; Shift: TShiftState; X, Y: Integer);

begin

drag := true; {мышь нажата}

Image1.Canvas.MoveTo(x, y); {перенос графического курсора в место нажатия мыши}

end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

if drag then

Image1.Canvas.LineTo(x, y); {создание коротких отрезков, образующих линию}

end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

drag := false; {мышь отпущена}

end;

end.

Листинг 52

procedure TForm1.FormCreate(Sender: TObject);

begin

Form1.DoubleBuffered := true;

end;

Р ис. 45

Листинг 53

var

Form1: TForm1;

x0, y0: integer; {переменные для запоминания предыдущего положения мыши в локальной системе объекта Image}

drag: boolean; {индикатор состояния мыши}