Bootstrap

Tstring和TstringList区别

1、TStrings、TStringList不是可视组件,只是两个通用类,与可视组件TMemo、TRichEdit没有可比性。

  2、TStrings、TStringList都是管理“字符串-附属对象”这样一个列表,前者是抽象类,不能被实例化,只是定义了一些通用的属性、方法,而后者是从TString继承而来,可以实例化使用。如:

var
  S1, S2: TStrings;
  S3: TStringList;
begin
  S1 := TStrings.Create; //这样就不可以
  S3 := TStringList.Create; //这样是可以的
  S2 := TStringList.Create; //这样也是可以的
end;

与上面不同的是S2不能直接调用TStrings类没有的属性方法,而需要类型转换TStringList(S2)之后才能调用
  
  3.TMemo通常用于显示多行的纯文本内容。其Items属性类型是TStrings(实际上是继承自TStrings的TMemoStrings),因此可以直接从TStrings兼容类型的变量导入数据。

  4.TRichEdit通常用于显示格式化的文本内容。其Items属性类型也是TStrings(实际上是继承自TStrings的TRichEditStrings),因此可以直接从TStrings兼容类型的变量导入数据。

━━━━━━━━━━━━━━━━━━━━━━━━━━


Tstringlist 是Tstrings的后代呀。  
你可以声明Tstrings的对象,但那些 add,delete等方法是不能用的,因为是Abstract方法。  
所以  
var    
      strs:Tstrings;  
begin  
      strs:=Tstringlist.create;//Tstringlist实现了Tstrings中的抽象方法。  
      strs.add('字符串');  
      strs.free;  
end;  

;