Re[2]: Помогите, пожалуйста, разобраться с объектами в Делфи
От: no_such_nick  
Дата: 10.04.06 16:40
Оценка:
На данный момент прога выглядит так:
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...
Пока на собственное сообщение не было ответов, его можно удалить.