我有一个面板(TPanel),它是在运行时创建的其他许多面板的父级。我想将所有这些都像图像(位图,图形,无论如何..)一样保存到数据存储中。我用这个:
image1.Picture:= nil;
panel1.PaintTo(image1.Canvas.Handle,0,0);
table1.edit;
table1.FieldByName('Im').Assign(image1.Picture.Bitmap);
table1.Post;
和这个:
var
Bitmap: TBitmap;
BmpField: TGraphicField;
begin
BmpField := table1.FieldByName('Im') as TGraphicField;
Bitmap := TBitmap.Create;
try
Bitmap.Width := Panel1.Width;
Bitmap.Height := Panel1.Height;
Panel1.PaintTo(Bitmap.Canvas.Handle, 0, 0);
table1.Edit;
BmpField.Assign(Bitmap);
table1.Post;
finally
Bitmap.Free;
end;
end;
感谢Ken White,这两种方法都有效,但是......当我将数据集保存为 .xml 并在文本编辑器中打开该 .xml 时,保存在那里的图像是一个无限的字符串(不大,但无限!)。
有没有办法像数据库中的普通图像一样保存这个面板(里面有面板),并且保存的 .xml 字符串是一个像样的?谢谢你。