加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 我想为TStringList.Objects分配一条记录

发布时间:2020-12-15 04:09:11 所属栏目:大数据 来源:网络整理
导读:我想创建一个播放列表控件.我有很多信息要显示在TStringList中.我想将记录分配给TStringGrid.Objects而不是对象,因为这么多对象可能需要一段时间才能创建/销毁.它也需要大量的RAM. 记录会更快更轻薄. 我怎样才能做到这一点? TYPE AMyRec= packed record Ful
我想创建一个播放列表控件.我有很多信息要显示在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;

等等

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读