var a:Tstream;
begin
a:=Tstream.create;
combobox1.items.savetostream(a);
combobox1.clear;
combobox1.items.loadfromstream(a);
end;
这段代码为什么会有误?请回答!
begin
a:=Tstream.create;
combobox1.items.savetostream(a);
combobox1.clear;
combobox1.items.loadfromstream(a);
end;
这段代码为什么会有误?请回答!
begin
a:=Tmemorystream.create;
combobox1.items.savetostream(a);
combobox1.clear;
combobox1.items.loadfromstream(a);
end;
这样就不出错了,原因说不清楚,但你平常不要用TStream,一般用tmemorystream、tfilestream等。
应该先从它继承一个类然后再用
var a:Tmemorystream;
begin
a:=Tfilestream.create;
combobox1.items.savetostream(a);
combobox1.clear;
combobox1.items.loadfromstream(a);
end;
var a:Tmemorystream
var a:Tmemorystream;
begin
a:=Tmemorystream.create;
combobox1.items.savetostream(a);
combobox1.clear;
combobox1.items.loadfromstream(a);
end;
这样就不出错了,原因说不清楚,但你平常不要用TStream,一般用tmemorystream、tfilestream等。
虽然可以通过,但是,我以前COMBOBOX里的东西都不见了?
为什么?
我的意思,清空再给原来的值,应该怎么办?
谢谢
begin
a:=Tmemorystream.create;
combobox1.items.savetostream(a);
combobox1.clear;
a.position:=0;//设定内存区域从0开始
combobox1.items.loadfromstream(a);
end;
a:TStream;//这里声明成TStream比较好,这样在改用其它流如TFileStream时只需修改创建的代码就行了.
begin
a:=TMemoryStream.create;
combobox1.items.savetostream(a);
combobox1.clear;
a.Position := 0;//加上这句.
combobox1.items.loadfromstream(a);
end;
begin
a:=Tmemorystream.create;
combobox1.items.savetostream(a);
combobox1.clear;
a.Position := 0;
combobox1.items.loadfromstream(a);
end;
应该先从它的子类开始定义,然后再用是没有问题的。
应该先从它的子类开始定义,然后再用是没有问题的。
var
a:TStream
begin
a:=TFileStream.Create('C:\Temp\ComboBox1.Txt',fmCreate);//这里改一下就行了.
combobox1.items.savetostream(a);
combobox1.clear;
a.Position := 0;//加上这句.
combobox1.items.loadfromstream(a);
end;