我需要向TobjectList保存/加载许多TRichEdit.lines对象,当然还要保存/加载到流中,然后将其传递给RichEdit。
e.g。
ObjList.Add(RichEdit.Lines)
RichEdit.Lines:=TStrings(ObjList[]).....???
它无法在两个方向上发挥作用 以及如何从文件/流重新加载所有ObjList? 谢谢你的帮助
答案 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);