16,748
社区成员
发帖
与我相关
我的任务
分享
为了方便修改 持久化自定义类
type
Mycalss=(TComponent)
private
FTestBmp:String;
procedure SetTestBmp(Value:String);////////都是默认属性
published
property TestBmp:String Read FTestBmp Write SetTestBmp;
----------------
调用时 将Bmp图片流化到StringStream;
var
My:MyClass;
var
bmp:TBitmap;
StrStream:TStringStream;
begin
bmp:=TBitMap.Create;
StrStream:=TStringStream.Create('')
Bmp.LoadFromFile('xxxx');
Bmp.SavetoStream(StrStream);
StrStream.position:=0;
My.TestBmp:=StrStream.DataString;
end;
回调图片 :
var
StrStream:TStringStream;
begin
StrStream:=TStringStream.Create(My.TestBmp);
StrStream.position:=0;
Image1.Picture.BitMap.LoadfromStream(StrStream);
end;
问题出现在回调上,如果不持久化,在创建自定义类时,执行流化后,调用该类的属性My.TestBmp生成图片成功。
持久化后 图片变形严重,错位. 比较原先流化时生成字符串长度发现长度不一1078 和1054
就这个问题请教各位,问题可能出现在什么地方,
查看Bitbtn 持久化bitmap过程很复杂 而且里面有些类不对外公布,无法调用,因此想这样简单处理
没想到遇到这样的问题。