КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Interface. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;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; {индикатор состояния мыши}
|