H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #81 读取地址错误 access violation at address 0066658c........'
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #82 这样的话 image没创建 没有分配内存空间
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #83 对了,你的image要预先创建的啊。 先创建一个image,然后从tlist内获得图片 然后处理。 使用完毕后释放。 另外,如果不创建image也可以 直接使用 timage(imagelist.items)
对了,你的image要预先创建的啊。 先创建一个image,然后从tlist内获得图片 然后处理。 使用完毕后释放。 另外,如果不创建image也可以 直接使用 timage(imagelist.items)
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #84 先创建一个image,然后从tlist内获得图片 然后处理。 使用完毕后释放。 这个方法我试过了 都不行
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #85 在tlist内保存的其实是一个一个创建好的对象的指针。 可以直接使用的啊,只需让其在合适的位置显示就可以了。
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #86 现在我怀疑是dephi7得frame 再bcb6中的问题
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #87 image:=imagelist.items; 这句话就是把image得指针直接指到创建好的对象的指针 在别的地方用过 没有问题 改变别的属性如top ,left时 都没有问题 就是改变里面的bitmap出问题了
image:=imagelist.items; 这句话就是把image得指针直接指到创建好的对象的指针 在别的地方用过 没有问题 改变别的属性如top ,left时 都没有问题 就是改变里面的bitmap出问题了
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #88 哦,我以为image是一个本来就创建了的控件。 那么试试这样,看内存是否增长。 image:=imagelist.items; image.Canvas.textout(5,5,'test'); image.repaint(); //此句先不加,看能否显示文字
哦,我以为image是一个本来就创建了的控件。 那么试试这样,看内存是否增长。 image:=imagelist.items; image.Canvas.textout(5,5,'test'); image.repaint(); //此句先不加,看能否显示文字
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #89 image.Canvas.textout(5,5,'test'); 不加image.repaint(); 内存就增加 比闪烁还增的快 每个周期增32k左右 image:=imagelist.items; w:= image.Picture .Bitmap.Width ; h:=image.Picture.Bitmap.Height ; hdc2:=image.Canvas.Handle; hdc1:=image.Canvas.Handle ; bitblt(hdc2,0,0,w,h,hdc1,0,0,notsrccopy); image.repaint(); 去掉image.repaint(); 内存就不增加了 但是图像也不闪烁了
image.Canvas.textout(5,5,'test'); 不加image.repaint(); 内存就增加 比闪烁还增的快 每个周期增32k左右 image:=imagelist.items; w:= image.Picture .Bitmap.Width ; h:=image.Picture.Bitmap.Height ; hdc2:=image.Canvas.Handle; hdc1:=image.Canvas.Handle ; bitblt(hdc2,0,0,w,h,hdc1,0,0,notsrccopy); image.repaint(); 去掉image.repaint(); 内存就不增加了 但是图像也不闪烁了
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #90 这样试试看: w:= Timage(imagelist.items).Picture .Bitmap.Width ; h:=Timage(imagelist.items).Picture.Bitmap.Height ; bitblt(Timage(imagelist.items).Canvas.Handle,0,0,w,h,Timage(imagelist.items).Canvas.Handle,0,0,notsrccopy); Timage(imagelist.items).repaint(); //这句先不加
这样试试看: w:= Timage(imagelist.items).Picture .Bitmap.Width ; h:=Timage(imagelist.items).Picture.Bitmap.Height ; bitblt(Timage(imagelist.items).Canvas.Handle,0,0,w,h,Timage(imagelist.items).Canvas.Handle,0,0,notsrccopy); Timage(imagelist.items).repaint(); //这句先不加
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #91 不加Timage(imagelist.items).repaint(); 内存不增加 加Timage(imagelist.items).repaint(); 内存增加
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #92 不加Timage(imagelist.items).repaint(); 内存不增加 如果遮挡了这个图标 拿开了以后 这个图标正好是取反图像 就会刷新 内存就增长
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #93 repaint(); 会调用系统函数重绘 遮挡的图标拿开后也会引起系统重绘。 我试了一下,别的什么不写,就一句image1.repaint(); 也会引起内存增加,运行第一次增加4k,再持续多次运行此语句,内存不在增加,或偶尔又增加4k。 估计是系统缓存导致的内存增加吧。
repaint(); 会调用系统函数重绘 遮挡的图标拿开后也会引起系统重绘。 我试了一下,别的什么不写,就一句image1.repaint(); 也会引起内存增加,运行第一次增加4k,再持续多次运行此语句,内存不在增加,或偶尔又增加4k。 估计是系统缓存导致的内存增加吧。
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #95 每次都增加30k左右 有什么可以强制清缓存的程序吗?
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #96 另外,怀疑你的系统是否有问题 在我的电脑上,就一句, Bitblt(Image1.Canvas.Handle, 0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height, Image1.Canvas.Handle, 0, 0, notSRCCOPY); 图片已经取反并显示了,无需手工调用repaint(); 并且程序占用的内存减少了几k 如果后面再加上一句image1.repaint();情况一样,也是占用的内存减少。
另外,怀疑你的系统是否有问题 在我的电脑上,就一句, Bitblt(Image1.Canvas.Handle, 0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height, Image1.Canvas.Handle, 0, 0, notSRCCOPY); 图片已经取反并显示了,无需手工调用repaint(); 并且程序占用的内存减少了几k 如果后面再加上一句image1.repaint();情况一样,也是占用的内存减少。
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #98 我得是xp sp2 bcb6 +delphi7 程序是在delphi7 编得frame中的 工程是bcb6调用 frame
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #99 图片已经取反并显示了,无需手工调用repaint(); 不会把!! 我试过 不行
H hitman007260 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-07 #100 ufo! 能加你qq吗? 我qq117830882