Canvas.Brush.Bitmap := mybgpic 传的是指针还是?

我看你有戏 2007-12-26 06:01:40


Canvas.Brush.Bitmap := mybgpic
像这种

在内存里是怎么处理的啊

是把mybgpic的地址传过去

还是说把mybgpic拷贝一份再传过去


比较模糊的
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eminemlhp 2007-12-27
  • 打赏
  • 举报
回复
是要调用Assign才是把内容都复制过去了,用赋值符号无疑是仅仅复制了指针
stherix 2007-12-26
  • 打赏
  • 举报
回复
只是简单的赋给,指针引用(其实内部实现也不是那么简单)
Canvas.Brush.Bitmap := mybgpic

这句操作之后 你不能mybgpic.Free 因为它只存在一个实例,不然Canvas.Brush.Bitmap会出现问题

虽然delphi不支持运算符重载 ,但是通过property,一个:=内部操作也是很多的

vcl里面 一个对象:=另一个对象,一般都不会复制整个对象
我看你有戏 2007-12-26
  • 打赏
  • 举报
回复

有没有人肯定一点的回答我

让我晚上睡得安稳一点啊。。。。。。
lextm 2007-12-26
  • 打赏
  • 举报
回复
这个的确需要看源代码才知道setter是怎么定义的。.NET中很多地方都是copy一份,不知道这里到底是怎么样的。
sdzeng 2007-12-26
  • 打赏
  • 举报
回复
确切点说叫做对象引用,也是指针的一种
stherix 2007-12-26
  • 打赏
  • 举报
回复
你可以去看下源码
这个是值复制

16,748

社区成员

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

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