一个自定义控件
FItemPic: TBitmap; //添加了一个变量存图片property ItemPic: TBitmap read FItemPic write SetItemPic; //设置了对外procedure T****.SetItemPic(Value: TBitmap); //对外的赋值
begin
FItemPic.Assign(Value);
end;T****.create; //控件的创建
FItemPic := TBitmap.Create; T****.Destroy; //控件释放
FItemPic.Free;T****.save; //保存(这个用于上一步、下一步的操作)还有其他的
WriteItemPic(Stream,ItemPic);T****.load; //读取(这个用于上一步、下一步的操作)还有其他的
ItemPic.Assign(ReadItemPic(Stream));//以下是保存、读取的两个函数,这两个不知道怎么写???
procedure WriteItemPic(Stream: TStream; const S: TBitmap); //这个有问题
var
L: Word;
begin
L := SizeOf(S) { * SizeOf(Char) } ;
if L > $FFFF then
L := $FFFF;
Stream.WriteBuffer(L, SizeOf(Word));
if L > 0 then
Stream.WriteBuffer(S, L);
end;function ReadItemPic(Stream: TStream): TBitmap; //这个有问题
var
L: Word;
begin
Stream.ReadBuffer(L, SizeOf(TBitmap));
// SetString(Result, PChar(nil), L);
// SetString(Result, PAnsiChar(nil), L);
if L > 0 then
Stream.ReadBuffer(Result, L);
end;
FItemPic: TBitmap; //添加了一个变量存图片property ItemPic: TBitmap read FItemPic write SetItemPic; //设置了对外procedure T****.SetItemPic(Value: TBitmap); //对外的赋值
begin
FItemPic.Assign(Value);
end;T****.create; //控件的创建
FItemPic := TBitmap.Create; T****.Destroy; //控件释放
FItemPic.Free;T****.save; //保存(这个用于上一步、下一步的操作)还有其他的
WriteItemPic(Stream,ItemPic);T****.load; //读取(这个用于上一步、下一步的操作)还有其他的
ItemPic.Assign(ReadItemPic(Stream));//以下是保存、读取的两个函数,这两个不知道怎么写???
procedure WriteItemPic(Stream: TStream; const S: TBitmap); //这个有问题
var
L: Word;
begin
L := SizeOf(S) { * SizeOf(Char) } ;
if L > $FFFF then
L := $FFFF;
Stream.WriteBuffer(L, SizeOf(Word));
if L > 0 then
Stream.WriteBuffer(S, L);
end;function ReadItemPic(Stream: TStream): TBitmap; //这个有问题
var
L: Word;
begin
Stream.ReadBuffer(L, SizeOf(TBitmap));
// SetString(Result, PChar(nil), L);
// SetString(Result, PAnsiChar(nil), L);
if L > 0 then
Stream.ReadBuffer(Result, L);
end;
解决方案 »
- 請問如何讓 Twebbrowser 或 EmbeddedWB 強制開啟新視窗呢
- 高分请教:Delphi如何获取指定打印机所支持的纸张列表
- 三层结构中的问题???
- MIDAS基于http连接的问题
- Aersdesign报表问题,不知各位遇到过没有。
- **热烈祝贺我的帖子《Dephi中资源文件使用详解》收入<Delphi编程经验总结>***
- 急啊,Rebuilder报表的问题,帮帮我!!
- 怎么实现指针的移动?类似于C语言当中的p++(P为指针)
- Memo或DBRichText中文本格式问题
- 怎么让listbox每隔一行变换一种颜色?
- 300分问个小问题,不信没人来回答 idftp.list
- delphi 如何设定另一程序指定窗口的显示位置
var
L: Integer;
begin
L := Length(S) { * SizeOf(Char) } ;
if L > $FFFF then //问题存在于这里
L := $FFFF;
Stream.WriteBuffer(L, SizeOf(Word));
if L > 0 then
Stream.WriteBuffer(S[1], L);
end;