有本书上这么写着:{关于用StringGrid控件删除一行的}
类TStringGrid的祖先类TCustomGrid提供了DeleteRow方法,但其可见域为protected而
不是Public,所以其子孙类TDawGrid和TStringGrid都无法直接访问。但根据Delphi的面向
对象的概念,继承是可以看到父类的Protected域的属性和方法的,所以只需从
类TStringGrid继承一个临时类,在需要用到DeleteRow方法时将TStringGrid对象格式化
为此临时类的对象即可。
type
TtempStringGrid=class(TStringGrid);
procedure MyDeleteRow(StringGrid:TStringGrid;ARow:integer)
begin
with TtempStringGrid(StringGrid) do
DeleteRow(ARow)
end;
以上程序可以执行!
若改为:
with TStringGrid(StringGrid) do {这好像很多余。。。}
DeleteRow(ARow)
这些是不是可以说明 继承类跟子孙类不同呢?
能给点解释吗?