我需要创建 TStringList 类的后代,它具有与 TstringList 类相同的功能,但列表中的每个字符串/对象都有一个 id 和 subid 元素。
这可以通过继承 TStringList 类来实现吗?或者我需要创建一个新类并实现我需要的行为。
LE:我还需要 Objects 属性,因此我无法在列表中存储指向结构的指针。
最佳答案
通过检查 TStringList 类源代码,我认为可以通过添加另一个 FListIDs: PStringItemListIDs
来直接继承 TStringList 类(类似于 FList: PStringItemList
)其中TStringItemIDs
是FID, FSubID: Integer
的记录(假设数据类型为Integer)。
接下来,您需要重写涉及 FList
的每个 TStringList
方法,即:Add
、Clear
、删除
、插入
等...您将在其中处理添加或删除的FListID
。
最后使用 getter 和 setter 函数创建索引属性:ID
、SubID
。例如:
property ID[Index: Integer]: Integer read GetID write SetID;
property SubID[Index: Integer]: Integer read GetSubID write SetSubID;
getter 和 setter 函数将获取或设置 FListIDs
。
关于delphi - TStringList 后代,每个元素都有 id 和 subid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12070726/