当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《我想为TStringList.Objects分配一条记录》经验,为你挑选了1个好方法。

我想创建一个播放列表控件.我有很多信息要显示在TStringList中.我想将记录分配给TStringGrid.Objects而不是对象,因为这么多对象可能需要一段时间才能创建/销毁.它也需要大量的RAM.

记录将更快更轻薄.我怎样才能做到这一点?

TYPE
 AMyRec= packed record
        FullName     : string[255];    
        RelativePath : boolean;        
        IsInvalid    : boolean;        
        InCache      : boolean;        
        etc
       end;

JamesSugrue.. 6

您可以将TList用于记录的指针.

例如:

Type    
PMyrec = ^AMyRec;

用法

var
   MyRec : PMyRec;
new(MyRec);
MyRec^.Fullname := 'test';
MyRec^.RelativePath := false;

等等

{MyList是您在别处创建的列表}

MyList.Add(MyRec);

你必须处理从列表中处理的项目,例如

Dispose(PMyRec(MyList[Index]));

要使用列表中的项目:

var
  MyRec : PMyRec;

PMyRec := MyList.Items[i];
txtBox.Text = PMyRec^.Fullname;

等等



1> JamesSugrue..:

您可以将TList用于记录的指针.

例如:

Type    
PMyrec = ^AMyRec;

用法

var
   MyRec : PMyRec;
new(MyRec);
MyRec^.Fullname := 'test';
MyRec^.RelativePath := false;

等等

{MyList是您在别处创建的列表}

MyList.Add(MyRec);

你必须处理从列表中处理的项目,例如

Dispose(PMyRec(MyList[Index]));

要使用列表中的项目:

var
  MyRec : PMyRec;

PMyRec := MyList.Items[i];
txtBox.Text = PMyRec^.Fullname;

等等

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有