Ill*_*iou 20 delphi tstringlist memo
为什么要Memo.Lines使用抽象类TStrings?为什么不使用TStringList呢?
我应该TStringList在使用它之前将其转换为它吗?
NGL*_*GLN 24
TMemo.Lines,TListBox.Items,TComboBox.Items等; 所有都被宣布为TStrings.小心,谈论属性!内部创建的类型是TMemoStrings,TListBoxStrings和TComboBoxStrings分别,它们的所有后代TStrings和存储的方式不同的所有.
为什么?用于互换性和互操作性.所以每个TStrings主人都有相同的属性,所以你可以这样做:
Memo1.Lines := ListBox1.Items;
Run Code Online (Sandbox Code Playgroud)
如何使用?好吧,一个TStrings像TMemo.Lines工作的房子很好.您可以添加,删除,更改,更新和清除属性上的字符串(和对象),因为在内部它是TMemoStrings实现所有这些交互的.声明<>实施.
但是当你想要任何特殊处理时,例如像TStringList提供的排序一样,那么你需要帮助.您不能进行类型转换,也不能将a转换TMemo.Lines为a TStringList,因为它不是一个,而是需要为此特殊处理创建一个中间对象:
var
Temp: TStringList;
begin
Temp := TStringList.Create;
try
Temp.Assign(Memo1.Lines);
Temp.Sort;
Memo1.Lines.Assign(Temp);
finally
Temp.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10332 次 |
| 最近记录: |