image.picture.bitmap.canvas和image.canvas有什么区别?

wgx_xx 2002-11-25 02:46:00
image.picture.bitmap.canvas和image.canvas有什么区别?
为什么我自己定义的类里面定义的canvas:tcanvas只能和image.picture.bitmap.canvas互相复值
而和image.canvas一复值
就出错
...全文
150 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ehom 2002-11-25
  • 打赏
  • 举报
回复
区别就在于一个是Image.Canvas,一个是Bitmap.Canvas,像是废话!呵呵!
当然在Image.Canvas上画和其他从TGraphicControl继承的控件还不一样!它重载了Canvas!
property Canvas: TCanvas read GetCanvas;

而下面的函数导致实质就是画到了Image.Picture.Bitmap上!
function TImage.GetCanvas: TCanvas;
var
Bitmap: TBitmap;
begin
if Picture.Graphic = nil then
begin
Bitmap := TBitmap.Create;
try
Bitmap.Width := Width;
Bitmap.Height := Height;
Picture.Graphic := Bitmap;
finally
Bitmap.Free;
end;
end;
if Picture.Graphic is TBitmap then
Result := TBitmap(Picture.Graphic).Canvas
else
raise EInvalidOperation.Create(SImageCanvasNeedsBitmap);
end;

当然不能赋值,系统不是给出了错误提示,告诉了你为什么吗?
delphi_xizhousheng 2002-11-25
  • 打赏
  • 举报
回复
up

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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