Помогите исправить программу. НЕобходимо, чтобы было 4 кнопки, с помощью которых можно было бы управлять фигурой
Код:
unit Unit78;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
ButShow: TBitBtn;
ButHide: TBitBtn;
ButMove: TBitBtn;
ButClose:TBitBtn;
NewX: TEdit;
NewY: TEdit;
procedure ButShowClick(Sender: TObject);
procedure ButHideClick(Sender: TObject);
procedure ButMoveClick(Sender: TObject);
procedure ButCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure NewXClick(Sender: TObject);
procedure NewYCLick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyPoint=Class
X, Y:Integer;
constructor Create(NewX,NewY:integer);
destructor Destroy;virtual;
procedure Show;virtual;
procedure Hide;virtual;
procedure MoveTo(NewX,NewY:integer);virtual;
end;
TMyFigure=Class(TMyPoint)
r,a:integer;
fcol:Tcolor;
constructor Create(NewX,NewY,NewR,NewA:integer);
procedure Show;override;
procedure Hide;override;
end;
var
Form1: TForm1;
Figure:TMyFigure;
implementation
{$R *.dfm}
constructor TMyPoint.Create(NewX,NewY:integer);
begin
InHerited Create;
x:=NewX;
y:=NewY;
end;
destructor TMyPoint.Destroy;
begin
Figure.Free;
Inherited;
end;
procedure TMyPoint.Hide;
begin
Form1.Canvas.Pixels[X,Y]:=clNavy;
end;
procedure TMyPoint.Show;
begin
Form1.Canvas.Pixels[X,Y]:=clWhite;
end;
procedure TMyPoint.MoveTo(NewX,NewY:integer);
begin
Hide;
x:=NewX;
y:=NewY;
Show;
end;
constructor TMyFigure.Create(NewX,NewY,NewR,NewA:integer);
begin
Inherited Create(NewX,NewY);
r:=NewR;
a:=NewA;
end;
procedure TMyFigure.Show;
const
x=200;
y=200;
a=50;
r=133;
begin
With Form1.Canvas do
begin
Pen.Width:=5;
Pen.Color:=fcol;
Ellipse(trunc(x-R), trunc (y-r), trunc (x+r),trunc( y+r));
lineTo(x-r,a div 2 +y);
lineTo (x-r, y-a div 2);
lineTo(x-r,y-a div 2);
lineTo (x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
lineTo(x-r,a div 2 +y);
lineTo (x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
end;
end;
Procedure TMyFigure.Hide;
var
concol:TColor;
begin
concol:=fcol;
Fcol:=clNavy;
show;
fcol:=concol;
end;
procedure TForm1.ButShowClick(Sender: TObject);
begin
ButShow.Enabled:=False;
Figure.show;
ButHide.Enabled:=True;
end;
procedure TForm1.ButHideClick(Sender: TObject);
begin
ButHide.Enabled:=False;
Figure.Hide;
ButShow.Enabled:=True;
end;
procedure TForm1.ButMoveClick(Sender: TObject);
var
MoveX, MoveY:integer;
begin
ButShow.Enabled:=False;
ButHide.Enabled:=False;
try
MoveX:=Strtoint(NewX.text);
except
on Exception:EConvertError do
ShowMessage ('ââåäèòå íîâûå êîîðäèíàòû');
end;
try
MoveY:=Strtoint(NewY.text);
except
on Exception:EConvertError do
ShowMessage ('ââåäèòå íîâûå êîîðäèíàòû');
end;
end;
Procedure TForm1.ButCloseClick(Sender:TObject);
begin
Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Figure:=TMyFigure.Create(100,100,50,133);
Figure.fcol:=clWhite;
ButHide.Enabled:=False;
end;
procedure TForm1.NewX(Sender: TObject);
begin
NewY.Clear;
end;
procedure TForm1.NewY(Sender: TObject);
begin
NewY.Clear;
end;
end.
________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.