需要一个类似于TStringList的name = value类,但值部分是variant

时间:2009-10-03 19:46:12

标签: delphi

我需要一个类似于TStringList的类来管理name&值对,但值部分是变体。或者它可能具有类似TStringList.Object的属性,但是包含变体而不是对象。

有谁能请我指向免费或开源实施?我使用Delphi 7。

谢谢。

4 个答案:

答案 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);