请看一小问题,关于Tstrings(50分)

  • 主题发起人 主题发起人 吴其华
  • 开始时间 开始时间

吴其华

Unregistered / Unconfirmed
GUEST, unregistred user!
为何报错
procedure TForm1.Button1Click(Sender: TObject);
var
str:Tstrings;
begin
if OpenDialog1.Execute then
begin
str:=Tstrings.Create;
str.LoadFromFile(Opendialog1.FileName);///这一句怎么会报错
//showmessage(str.Strings[5])
str.Free;
end;
end;
end.
 
不知道用Tstrings老出错,用TstringList就可以;

procedure TForm1.Button1Click(Sender: TObject);
var
str:TstringList
//改用TstringList
begin
if OpenDialog1.Execute then
begin
str:=TstringList.Create;
str.LoadFromFile(Opendialog1.FileName);///这一句怎么会报错
//showmessage(str.Strings[5])
str.Free;
end;
end;
 
TStrings 是一个抽象的类提供了很多虚方法,都在他的子类实现
procedure LoadFromFile(const FileName: string)
virtual;
所以会TSTRINGLIST行,而TSTRINGS不
 
TStrings是一个抽象类,不能直接创建它的实例,应该创建它的子类(非抽象类)的
实例,如TStringlist等.因为TStrings是的有一些方法过程是Abstract,没有实际
代码, 而TStringList中有。
 
知道了,谢谢
 
多人接受答案了。
 

Similar threads

后退
顶部