我需要一个类似于TStringList的类来管理name&值对,但值部分是变体。或者它可能具有类似TStringList.Object的属性,但是包含变体而不是对象。
有谁能请我指向免费或开源实施?我使用Delphi 7。
谢谢。
答案 0 :(得分:4)
您尚未提供此版本的Delphi版本,但从Delphi 2009开始,您可以使用TDictionary<string, Variant>
。
答案 1 :(得分:3)
如果您有Delphi 2009或2010,则可以使用DeHL中的TStringList<T>
课程来创建TStringList<Variant>
。 (您也可以使用TDictionary,但TStringList有许多额外的功能,您可能不想丢失。)
答案 2 :(得分:3)
您可以从TStringList派生并使用Objects属性来保存变体的包装器对象。
答案 3 :(得分:1)
PVariantRec = ^TVariantRec;
TVariantRec = record
Value : Variant;
end;
var
lItem : PVariantRec;
lMyStringList : TStringList;
lMyStringList := TStringList.Create;
lMyStringList.Sorted := true;
lMyStringList.OwnObjects := false;
//add
New(lItem);
lItem.Value := 'zzz';
lMyStringList.Add('name', TObject(lItem));
//remove
lItem := PVariantRec( lMyStringList.Objects[0] );
Dispose(lItem);
lMyStringList.Delete(0);