如何在TObjectList中插入和检索TStringList

时间:2016-04-12 16:41:55

标签: delphi

我需要向TobjectList保存/加载许多TRichEdit.lines对象,当然还要保存/加载到流中,然后将其传递给RichEdit。

e.g。

ObjList.Add(RichEdit.Lines)
RichEdit.Lines:=TStrings(ObjList[]).....??? 

它无法在两个方向上发挥作用 以及如何从文件/流重新加载所有ObjList? 谢谢你的帮助

1 个答案:

答案 0 :(得分:4)

此代码看起来不对:

ObjList.Add(RichEdit.Lines)

在这里,您只是引用了富编辑控件所拥有的TStrings对象。虽然您的问题标题涉及TStringList,但此处没有TStringList的实例。

我认为你的意思是要复制一下这些字符串:

var
  Strings: TStringList;
....
Strings := TStringList.Create;
Strings.Assign(RichEdit.Lines);
ObjList.Add(Strings); // assume that ObjList now owns Strings

然后在另一个方向,您的代码已经很好了:

RichEdit.Lines := ObjList[index] as TStrings; 
// this actually copies the content rather than taking a reference to the object

但是你可能想让代码在另一个方向上匹配:

RichEdit.Lines.Assign(ObjList[index] as TStrings);