我想创建一个播放列表控件.我有很多信息要显示在TStringList中.我想将记录分配给TStringGrid.Objects而不是对象,因为这么多对象可能需要一段时间才能创建/销毁.它也需要大量的RAM.
记录会更快更轻薄.
我怎样才能做到这一点?
- TYPE
- AMyRec= packed record
- FullName : string[255];
- RelativePath : boolean;
- IsInvalid : boolean;
- InCache : boolean;
- etc
- end;
解决方法
您可以将TList用于记录的指针.
例如:
- Type
- PMyrec = ^AMyRec;
- var
- MyRec : PMyRec;
- new(MyRec);
- MyRec^.Fullname := 'test';
- MyRec^.RelativePath := false;
等等
{MyList是您在别处创建的列表}
- MyList.Add(MyRec);
你必须处理从列表中处理的项目,例如
处置(PMyRec(MYLIST [索引]));
要使用列表中的项目:
- var
- MyRec : PMyRec;
- PMyRec := MyList.Items[i];
- txtBox.Text = PMyRec^.Fullname;
等等