Re[2]: Помогите, пожалуйста, разобраться с объектами в Делфи
От: no_such_nick  
Дата: 10.04.06 16:39
Оценка:
На данный момент прога выглядит так:

TPoint = class
private
X1:Integer;
Y1:Integer;
public
function xread:integer;
procedure xwrite(newx:integer);
function yread:integer;
procedure ywrite(newy:integer);
property x: integer read xread write xwrite;
property y: integer read yread write ywrite;
procedure Draw; virtual; abstract;
procedure Clear; virtual; abstract;
end;

TBall = class(TPoint)
private
public
procedure Draw; virtual;
procedure Clear; virtual;
end;
......
var
ball:TBall;
point:Tpoint;
.......
function TPoint.xread: integer;
begin
xread:=x1;
end;
function TPoint.yread: integer;
begin
yread:=y1;
end;

procedure TPoint.xwrite(newx:integer);
begin
x1:=newx
end;
procedure TPoint.ywrite(newy:integer);
begin
y1:=newy
end;

procedure TBall.clear;
begin
with MainForm,Canvas do
begin
brush.color:=clBtnFace;
pen.color:=clBtnFace;
ellipse(x1-15,y1-15,x1+15,y1+15);
end;
end;
procedure TBall.Draw;
begin
with MainForm,Canvas do

begin
brush.color:=clgreen;
pen.color:=clgreen;
ellipse(x1-15,y1-15,x1+15,y1+15);
end;

end;
.......
point:=Tpoint.Create;
point.xwrite(xc);
point.ywrite(yc);
ball:=TBall.Create;
Ball.Draw;
......
point.xwrite(xc);
point.ywrite(yc);
Ball.clear;
{вычисление новых координат}
point.xwrite(xc);
point.ywrite(yc);
Ball.Draw;

В результате всего этого я получаю неподвижный шарик в левом верхнем углу формы. Watch показывает
point20,174) и меняется со временем по формулам, как и должно быть
bal0,0) на протяжении всей работы программы.
Подскажите, пожалуйста, как в этом конкретном случае заставить Ball регулярно обновлять свои свойства x и y, которые, по идее, он наследует из Point.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.