delphi类继承问题

下面是(lazarus)(passcal) delphi本身单元的源代码


  TColumnButtonStyle = (
    cbsAuto,
    cbsEllipsis,
    cbsNone,
    cbsPickList,
    cbsCheckboxColumn,
    cbsButton,
    cbsButtonColumn
  ); 

TGridColumn = class(TCollectionItem)
published
    property ButtonStyle: TColumnButtonStyle read FButtonStyle write SetButtonStyle default cbsAuto; 
    ……
end;

TColumn = class(TGridColumn)
    ……
end;

//问题来了,我自己写一个类TBaseGridColumn ,把ButtonStyle属性重新写一遍,添加2个新枚举cbsDate,cbsNote,覆盖父类的枚举类型和属性,这个写法是否正确?

  TColumnButtonStyle = (
    cbsAuto,
    cbsEllipsis,
    cbsNone,
    cbsPickList,
    cbsCheckboxColumn,
    cbsButton,
    cbsButtonColumn,
    cbsDate,
    cbsNote
    ); 

TBaseGridColumn = class(TGridColumn )
published
    property ButtonStyle: TColumnButtonStyle read FButtonStyle write SetButtonStyle default cbsAuto; 
    ……
end;

//问题又来了,如果我父类是TColumn,那个自己改写的TBaseGridColumn用不上了?

TBaseColumn = class(TColumn)
    ……
end;

//问题又来了,如果我父类是TBaseGridColumn,那我需要的TColumn类里面的功能都没有?那我是不是要把TColumn这个类的全部代码复制,粘贴一遍,还得处理里面跨单元的未知错误?

TBaseColumn = class(TBaseGridColumn)
    ……
end;

上面问题有3,望解惑,感谢!

你可以按照一个方向先尝试一下,你这些问题没尝试就想到其它的问题,这越牵扯越多,不如先行动起来。