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