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;