unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus, Vcl.ExtCtrls;
type
TForm2 = class(TForm)
Image1: TImage;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Label7: TLabel;
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
PopupMenu1: TPopupMenu;
N3: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Clear;
procedure FormCreate(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
x,y,x2,y2: integer;
implementation
{$R *.dfm}
procedure TForm2.Button2Click(Sender: TObject);
var
a,b,c,d:integer;
bs: TBrushStyle;
begin
if (edit1.Text='') or (edit2.Text='') or (edit3.Text='') or (edit4.Text='')then
begin
messagedlg('Не все данные введены',mtError,[mbOk],0)
end
else begin
x:=250;
y:=250;
x2:=250;
y2:=250;
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
c:=StrToInt(Edit3.Text);
d:=StrToInt(Edit4.Text);
if (a<0) and (b<0) then begin
x:=x+a;
y:=y-b;
end;
if (c<0) and (d<0) then begin
x2:=x2+c;
y2:=y2-d;
end;
if (a>=0) and (b>=0) then begin
x:=x+a;
y:=y-b;
end;
if (c>=0) and (d>=0) then begin
x2:=x2+c;
y2:=y2-d;
end;
if (a<0) and (b>=0) then begin
x:=x+a;
y:=y-b;
end;
if (c<0) and (d>=0) then begin
x2:=x2+c;
y2:=y2-d;
end;
if (a>=0) and (b<0) then begin
x:=x+a;
y:=y-b;
end;
if (c>=0) and (d<0) then begin
x2:=x2+c;
y2:=y2-d;
end;
If (x>=250)and (y<=250)and(x2>=250) and (y2<=250)then
begin
ListBox1.Items.Text:='1';
image1.Canvas.Brush.Color:=clGreen; // Зеленый
Image1.Canvas.Rectangle(X,Y,X2,Y2);
Image1.Canvas.Brush.Style:=bsClear;
end;
If (x<=250)and (y<=250)and(x2<=250) and (y2<=250)then
begin
ListBox1.Items.Text:='2';
image1.Canvas.Brush.Color:=clBlue; //Синий
Image1.Canvas.Rectangle(X,Y,X2,Y2);
Image1.Canvas.Brush.Style:=bsClear;
end;
If (x<=250) and(y>=250)and(x2<=250) and (y2>=250)then
begin
ListBox1.Items.Text:='3';
image1.Canvas.Brush.Color:=clRed; //Красный
Image1.Canvas.Rectangle(X,Y,X2,Y2);
Image1.Canvas.Brush.Style:=bsClear;
end;
If (x>=250)and (y>=250)and(x2>=250) and (y2>=250)then
begin
ListBox1.Items.Text:='4';
image1.Canvas.Brush.Color:=clYellow; //Желтый
Image1.Canvas.Rectangle(X,Y,X2,Y2);
Image1.Canvas.Brush.Style:=bsClear;
end;
If ((x>250)and (y<250)and(x2<250) and (y2<250)) or ((x<250) and (y<250) and (x2>250) and (y2<250))then
begin
ListBox1.Items.Text:='1,2';
bs:=Image1.Canvas.Brush.Style;
Image1.Canvas.Brush.Style:=bsClear;
Image1.Canvas.Rectangle(X,Y,X2,Y2);
image1.Canvas.Brush.Color:=clGreen;
Image1.Canvas.Rectangle(x,y,250,y2);
image1.Canvas.Brush.Color:=clBlue;
Image1.Canvas.Rectangle(x2,y2,250,y);
Image1.Canvas.Brush.Style:=bs;
end;
If ((x<250)and(y<250)and(x2<250)and(y2>250)) or ((x<250) and (y>250) and (x2<250) and (y2<250))then
begin
ListBox1.Items.Text:='2,3';
bs:=Image1.Canvas.Brush.Style;
Image1.Canvas.Brush.Style:=bsClear;
Image1.Canvas.Rectangle(X,Y,X2,Y2);
image1.Canvas.Brush.Color:=clBlue;
Image1.Canvas.Rectangle(x,y,x2,250);
image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.Rectangle(x2,y2,x,250);
Image1.Canvas.Brush.Style:=bs;
end;
If ((x<250)and(y>250)and(x2>250)and(y2>250)) or ((x>250) and (y>250) and (x2<250) and (y2>250))then
begin
ListBox1.Items.Text:='3,4';
bs:=Image1.Canvas.Brush.Style;
Image1.Canvas.Brush.Style:=bsClear;
Image1.Canvas.Rectangle(X,Y,X2,Y2);
image1.Canvas.Brush.Color:=clYellow;
Image1.Canvas.Rectangle(x,y,250,y2);
image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.Rectangle(x2,y2,250,y);
Image1.Canvas.Brush.Style:=bs;
end;
If ((x>250)and(y>250)and (x2>250)and(y2<250)) or ((x>250) and (y<250) and (x2>250) and (y2>250))then
begin
ListBox1.Items.Text:='1,4';
bs:=Image1.Canvas.Brush.Style;
Image1.Canvas.Brush.Style:=bsClear;
Image1.Canvas.Rectangle(X,Y,X2,Y2);
image1.Canvas.Brush.Color:=clYellow;
Image1.Canvas.Rectangle(x,y,x2,250);
image1.Canvas.Brush.Color:=clBlue;
Image1.Canvas.Rectangle(x2,y2,x,250);
Image1.Canvas.Brush.Style:=bs;
end;
If ((x>250)and(y>250)and(x2<250)and(y2<250)) or ((x<250) and (y<250) and (X2>250) and (y2>250)) or ((x>250) and (y<250) and (x2<250) and (y2>250)) or ((x<250) and (y>250) and (x2>250) and (y2<250))then
begin
ListBox1.Items.Text:='1,2,3,4';
bs:=Image1.Canvas.Brush.Style;
Image1.Canvas.Brush.Style:=bsClear;
Image1.Canvas.Rectangle(X,Y,X2,Y2);
image1.Canvas.Brush.Color:=clGreen;
Image1.Canvas.Rectangle(x,y,250,250);
image1.Canvas.Brush.Color:=clBlue;
Image1.Canvas.Rectangle(x,y2,250,250);
image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.Rectangle(x2,y2,250,250);
image1.Canvas.Brush.Color:=clYellow;
Image1.Canvas.Rectangle(x2,y,250,250);
Image1.Canvas.Brush.Style:=bs;
end;
end;
end;
procedure TForm2.Clear;
var i, k:integer;
begin
Image1.Canvas.Pen.Width:=1;
Image1.Canvas.pen.Color:=clBlack;
image1.Canvas.Brush.Color:=clwhite;
image1.Canvas.Rectangle(0,0,500,500);
image1.Canvas.MoveTo(250,0); image1.Canvas.LineTo(250,500);
image1.Canvas.MoveTo(0,250); image1.Canvas.LineTo(500,250);
k:=50;
for i:=1 to 9 do begin
image1.Canvas.MoveTo(247,k); image1.Canvas.LineTo(254,k);
image1.Canvas.MoveTo(k,247); image1.Canvas.LineTo(k,254);
image1.Canvas.TextOut(k-9,257,inttostr(k-250));
if k<>250 then image1.Canvas.TextOut(223,k-7,inttostr(-k+250));
k:=k+50;
end;
end;
procedure TForm2.Edit1Change(Sender: TObject);
var
u:integer;
begin
try
u:=StrToInt(Edit1.Text);
if u>250 then
begin
ShowMessage('Превышен диапозон допустимого положительного значения');
edit1.Text:='0';
end;
if u<-250 then
begin
ShowMessage('Превышен диапозон допустимого отрицательного значения');
edit1.Text:='0';
end;
except
//edit1.Text:='0';
end;
end;
procedure TForm2.Edit2Change(Sender: TObject);
var
u:integer;
begin
try
u:=StrToInt(Edit2.Text);
if u>250 then
begin
ShowMessage('Превышен диапозон допустимого положительного значения');
edit2.Text:='0';
end;
if u<-250 then
begin
ShowMessage('Превышен диапозон допустимого отрицательного значения');
edit2.Text:='0';
end;
except
//edit1.Text:='0';
end;
end;
procedure TForm2.Edit3Change(Sender: TObject);
var
u:integer;
begin
try
u:=StrToInt(Edit3.Text);
if u>250 then
begin
ShowMessage('Превышен диапозон допустимого положительного значения');
edit3.Text:='0';
end;
if u<-250 then
begin
ShowMessage('Превышен диапозон допустимого отрицательного значения');
edit3.Text:='0';
end;
except
//edit1.Text:='0';
end;
end;
procedure TForm2.Edit4Change(Sender: TObject);
var
u:integer;
begin
try
u:=StrToInt(Edit4.Text);
if u>250 then
begin
ShowMessage('Превышен диапозон допустимого положительного значения');
edit4.Text:='0';
end;
if u<-250 then
begin
ShowMessage('Превышен диапозон допустимого отрицательного значения');
edit4.Text:='0';
end;
except
//edit1.Text:='0';
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
application.Terminate;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
application.Terminate;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Clear;
end;
procedure TForm2.N3Click(Sender: TObject);
begin
//edit1.Text:='0';
//edit2.Text:='0';
//edit3.Text:='0';
//edit4.Text:='0';
ListBox1.Items.Text:='';
Clear;
end;
end.