下面是(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,望解惑,感谢!
你可以按照一个方向先尝试一下,你这些问题没尝试就想到其它的问题,这越牵扯越多,不如先行动起来。