unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
Button2: TButton;
procedure Button1Click(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);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Draw :Boolean;
p1,p2 :TPoint;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
image1.Canvas.Pen.Color:=clred;
image1.Canvas.MoveTo(0,30);
image1.Canvas.LineTo(100,30);
image1.Canvas.Pen.Width:=3;
image1.Canvas.MoveTo(0,80);
image1.Canvas.LineTo(100,80);
image1.Canvas.Pen.Width:=1;
image1.Canvas.Pen.Style:=psDot;
image1.Canvas.MoveTo(0,150);
image1.Canvas.LineTo(100,150);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
begin
Draw :=True;
p1 :=Point(x,y);
p2 :=Point(x,y);
end;
if Button=mbRight then
begin
Image1.Canvas.MoveTo(p1.x,p1.y);
Image1.Canvas.LineTo(p2.x,p2.y);
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Draw then
begin
Image1.Canvas.Pen.Mode :=pmNotXor;
Image1.Canvas.MoveTo(p1.x,p1.y);
Image1.Canvas.LineTo(p2.x,p2.y);
p2 :=Point(x,y);
Image1.Canvas.MoveTo(p1.x,p1.y);
Image1.Canvas.LineTo(p2.x,p2.y);
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Draw then
begin
Image1.Canvas.MoveTo(p1.x,p1.y);
Image1.Canvas.LineTo(p2.x,p2.y);
p2 :=Point(x,y);
Image1.Canvas.MoveTo(p1.x,p1.y);
Image1.Canvas.LineTo(p2.x,p2.y);
Draw :=False;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Draw :=False;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.FillRect(Rect(0,0,Image1.Width,Image1.Height));
end;
end.