镀
镀金的乞丐
Unregistered / Unconfirmed
GUEST, unregistred user!
我想在CheckListBox控件中加入一个属性ItemValue,用于记录每一个Item对应的一个特殊数值。
CheckLst.pas中TCheckListBox的原型如下:
type
TCheckListBox = class(TCustomListBox)
private
......
protected
......
procedure SetItemData(Index: Integer; AData: LongInt); override;
function GetItemData(Index: Integer): LongInt; override;
//我认为这两个方法就是TCheckListBox提供好的存取Item数值的方法
//只是处于保护状态,外部无法直接访问
......
end;
于是我以TCheckListBox为父类,派生了一个新类TCheckValueListBox如下:
type
TCheckValueListBox = class(TCheckListBox)
private
......
public
......
property ItemValue[Index: Integer]: integer read GetItemData write SetItemData;
......
end;
按照道理,派生类可以访问父类的protected中的方法属性,所以我在派生类中使用父类的GetItemData、SetItemData方法应该没错的;派生类的ItemValue属性在public中,所以用派生类实例化的对象,就可以直接访问ItemValue,这也应该没错啊,可是编译就是通不过~~求各位大虾救命啊
CheckLst.pas中TCheckListBox的原型如下:
type
TCheckListBox = class(TCustomListBox)
private
......
protected
......
procedure SetItemData(Index: Integer; AData: LongInt); override;
function GetItemData(Index: Integer): LongInt; override;
//我认为这两个方法就是TCheckListBox提供好的存取Item数值的方法
//只是处于保护状态,外部无法直接访问
......
end;
于是我以TCheckListBox为父类,派生了一个新类TCheckValueListBox如下:
type
TCheckValueListBox = class(TCheckListBox)
private
......
public
......
property ItemValue[Index: Integer]: integer read GetItemData write SetItemData;
......
end;
按照道理,派生类可以访问父类的protected中的方法属性,所以我在派生类中使用父类的GetItemData、SetItemData方法应该没错的;派生类的ItemValue属性在public中,所以用派生类实例化的对象,就可以直接访问ItemValue,这也应该没错啊,可是编译就是通不过~~求各位大虾救命啊