请教个问题!

风之谷 2010-04-08 01:36:30
   为了方便修改 持久化自定义类

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过程很复杂 而且里面有些类不对外公布,无法调用,因此想这样简单处理

没想到遇到这样的问题。


...全文
145 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
风之谷 2010-04-09
  • 打赏
  • 举报
回复
UP UP
风之谷 2010-04-09
  • 打赏
  • 举报
回复
UPUPUPUPUPUP~
金卯刀 2010-04-09
  • 打赏
  • 举报
回复
恢復圖片時,要先把字串轉一下,即由16進制轉為2進制(不然會被認為僅僅是字串而已,跟原來的圖片就會造成出入),再寫到內存流,然后再load。
jiap17231 2010-04-08
  • 打赏
  • 举报
回复
帮顶一下下
风之谷 2010-04-08
  • 打赏
  • 举报
回复
各位高手给点意见,这个问题我实在是想不明白啊,

风之谷 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hongqi162 的回复:]
刚才我看My.TestBmp:=StrStream.DataString;的strstream后面怎么没有DataString?



Image1.Picture.BitMap.LoadfromStream(StrStream); //你这样加载bitmap根据你的image大小拉伸了
[/Quote]

实际上我不是用image1加载我是用bitbtn1.Glyph.LoadFromFile

bitmap本身是图标
风之谷 2010-04-08
  • 打赏
  • 举报
回复
我后来改为ansistring 仍然处问题,很奇怪啊,没持久化前字符串没问题,持久化后就出问题了。

hongqi162 2010-04-08
  • 打赏
  • 举报
回复
刚才我看My.TestBmp:=StrStream.DataString;的strstream后面怎么没有DataString?



Image1.Picture.BitMap.LoadfromStream(StrStream); //你这样加载bitmap根据你的image大小拉伸了

风之谷 2010-04-08
  • 打赏
  • 举报
回复
那是错别字已经改过来了,我是手工写代码上去的 。那不是关键
bdmh 2010-04-08
  • 打赏
  • 举报
回复
支持一下,怀疑一下,是不是对于非固定长度数据(string)持久化时会有问题
hongqi162 2010-04-08
  • 打赏
  • 举报
回复
你的TestBmp属性定义的是一个string而你赋值是一个stream,你直接定义成stream或使用StrStream.datastring进行赋值

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧