类的应用问题

Dlwxn 2003-08-26 01:41:51
有以下类定义:
TAClass=class
..
public
property BeginPoint:TPoint read FBeginPoint Write SetBeginPoint;
end;

TBClass=class(TAClass)
..
end;

TCClass=class(TAClass)
..
end;


Var
AClass:TAClass;
BPoint,CPoint:TPoint;

如果我要取TAClass的BeginPoint,现在我只能做到:
BPoint:=(AClass as TBClass).BeginPoint;
CPoint:=(AClass as TCClass).BeginPoint;
如果TAClass有很多子类,是不是要一个一个的这样取,能不能有简单的方法将BeginPoint取出来。
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dlwxn 2003-08-26
  • 打赏
  • 举报
回复
搞定,晚上揭贴,谢谢各位!
Dlwxn 2003-08-26
  • 打赏
  • 举报
回复
如果改为以下定义呢:
TBClass=class(TAClass)
..
public
property EndPoint read FEndPoin Write SetEndPoint;
end;

TCClass=class(TAClass)
..
public
property Width read FWidth Write SetWidth ;
end;

是不是一定要这样取值?
BPoint:=(AClass as TBClass).EndPoint;
CPoint:=(AClass as TCClass).Width;




Dlwxn 2003-08-26
  • 打赏
  • 举报
回复
要用AClass这个变量,定义的类放在另一个单元中,这个单元直接引用的。

新建一个工程用 lxpbuaa(桂枝香在故国晚秋)的可以,在我现在的程序中不行,可能我的类定义有问题,我再找找 。
charles2118 2003-08-26
  • 打赏
  • 举报
回复
BPoint:=TBClass.BeginPoint;
CPoint:=TCClass.BeginPoint;
不就可以了,已经继承了啊
charles2118 2003-08-26
  • 打赏
  • 举报
回复
BPoint:=TBClass.BeginPoint;
CPoint:=TCClass.BeginPoint;
不就可以了,已经继承了啊
lxpbuaa 2003-08-26
  • 打赏
  • 举报
回复
直接:
BPoint:=AClass.BeginPoint;
CPoint:=AClassBeginPoint;
就可以了啊,因为TBClass和TCClass继承了TAClass公开的属性BeginPoint。

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
IORILI 2003-08-26
  • 打赏
  • 举报
回复
BPoint:=TBClass.BeginPoint;
CPoint:=TCClass.BeginPoint;
不行吗?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧