unit
Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus;
type
TForm1 =
class
(TForm)
Image1: TImage;
MainMenu1: TMainMenu;
N2: TMenuItem;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
procedure
FormCreate(Sender: TObject);
procedure
N7Click(Sender: TObject);
procedure
N8Click(Sender: TObject);
procedure
N9Click(Sender: TObject);
procedure
Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y:
Integer
);
private
public
end
;
var
Form1: TForm1;
xx,yy:
integer
;
tr, rec, cer:
boolean
;
Treangl:
array
[
1..3
,
1..2
]
of
integer
;
Rectangl:
array
[
1..4
,
1..2
]
of
integer
;
Elips:
array
[
1..3
,
1..2
]
of
integer
;
i:
integer
;
implementation
{$R *.dfm}
procedure
TForm1
.
FormCreate(Sender: TObject);
begin
xx:=round(Image1
.
Width/
2
);
yy:=round(Image1
.
Height/
2
);
Form1
.
Image1
.
Canvas
.
MoveTo(
0
,yy);
Form1
.
Image1
.
Canvas
.
LineTo(Form1
.
Image1
.
Width,yy);
Form1
.
Image1
.
Canvas
.
MoveTo(xx,
0
);
Form1
.
Image1
.
Canvas
.
LineTo(xx, Form1
.
Image1
.
Height);
Form1
.
Image1
.
Canvas
.
MoveTo(Form1
.
Image1
.
Width,yy);
Form1
.
Image1
.
Canvas
.
LineTo(Form1
.
Image1
.
Width-
10
, yy-
7
);
Form1
.
Image1
.
Canvas
.
MoveTo(Form1
.
Image1
.
Width,yy);
Form1
.
Image1
.
Canvas
.
LineTo(Form1
.
Image1
.
Width-
10
, yy+
7
);
Form1
.
Image1
.
Canvas
.
MoveTo(xx,
0
);
Form1
.
Image1
.
Canvas
.
LineTo(xx-
7
,
15
);
Form1
.
Image1
.
Canvas
.
MoveTo(xx,
0
);
Form1
.
Image1
.
Canvas
.
LineTo(xx+
7
,
15
);
Image1
.
Canvas
.
TextOut(xx-
20
, yy+
10
,
'0,0'
);
Image1
.
Canvas
.
TextOut(
2
*xx-
10
, yy+
15
,
'X'
);
Image1
.
Canvas
.
TextOut(xx-
15
,
5
,
'Y'
);
tr:=
False
;
rec:=
False
;
cer:=
False
;
end
;
procedure
TForm1
.
N7Click(Sender: TObject);
begin
i:=
1
;
tr:=
True
;
rec:=
False
;
cer:=
False
;
end
;
procedure
TForm1
.
N8Click(Sender: TObject);
begin
i:=
1
;
tr:=
False
;
rec:=
True
;
cer:=
False
;
end
;
procedure
TForm1
.
N9Click(Sender: TObject);
begin
i:=
1
;
tr:=
False
;
rec:=
False
;
cer:=
True
;
end
;
procedure
TForm1
.
Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y:
Integer
);
begin
if
tr=
true
then
begin
if
i<=
3
then
begin
Treangl[i,
1
]:=x;
Treangl[i,
2
]:=y;
if
i=
3
then
begin
Form1
.
Image1
.
Canvas
.
MoveTo(Treangl[
1
,
1
], Treangl[
1
,
2
]);
Form1
.
Image1
.
Canvas
.
LineTo(Treangl[
2
,
1
], Treangl[
2
,
2
]);
Form1
.
Image1
.
Canvas
.
LineTo(Treangl[
3
,
1
], Treangl[
3
,
2
]);
Form1
.
Image1
.
Canvas
.
LineTo(Treangl[
1
,
1
], Treangl[
1
,
2
]);
end
;
i:=i+
1
;
end
;
end
;
<b>
if
rec=
true
then
begin
if
i<=
4
then
begin
Rectangl[i,
1
]:=x;
Rectangl[i,
2
]:=y;
if
i=
4
then
begin
Form1
.
Image1
.
Canvas
.
MoveTo(Rectangl[
1
,
1
], Rectangl[
1
,
2
]);
Form1
.
Image1
.
Canvas
.
LineTo(Rectangl[
2
,
1
], Rectangl[
2
,
2
]);
Form1
.
Image1
.
Canvas
.
LineTo(Rectangl[
3
,
1
], Rectangl[
3
,
2
]);
Form1
.
Image1
.
Canvas
.
LineTo(Rectangl[
4
,
1
], Rectangl[
4
,
2
]);
Form1
.
Image1
.
Canvas
.
LineTo(Rectangl[
1
,
1
], Rectangl[
1
,
2
]);
end
;
i:=i+
1
;
end
;
end
;
end
;</b>
end
.