图像清除问题(50分)

  • 主题发起人 主题发起人 fatBaby
  • 开始时间 开始时间
F

fatBaby

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用一个 TPicture 存贮一幅图像。在需要清除图像的时候,找不到合适的 Clear方法
如果采用 TPicture.Graphic := nil 的方式的话发现图像虽然已被强制去除,但是内存却
仍然被占用。

请问有什么直接的方法可以使图像清除后不存在于内存中
 
用TPicture.Graphic.destroy
 
TPicture.Graphic.Free
 
这个呢?
TPicture.Free
 
我在BCB中用。 Free 的话本身就不允许,如果在Delphi中用,还会引发异常。
 
画笔色设置为背景色,把Picture重画一次
 
Picture.Bitmap.Canvas.FillRect(Picture.Bitmap.Canvas.ClipRect);

解决问题。
 
在public部分加一个:procedure ClearCanvas;
procedure TForm1.ClearCanvas;
begin
with Canvas do
begin
Brush.Style:=bsSolid;
Brush.Color:=clWhite;
FillRect(ClipRect);
end;
end;
在需要的地方加上就可以了!
 
如何清楚JPG图象?
 
不是在上面画一个空白框,而是清除 !!!
 
fatBaby:

你是要将PICTURE清为无图形吧。很简单:

Image1.Picture.Assign(nil);
 
本来还有一个问题是想重新开个题问的,就是:
为什么Assign会失效,运行时报错
cannot convert a TStringList to a TStringList
cannot convert a TPicture to a TPicture

我想大家估计没碰到过吧,我很走运,让我碰上了 ~~~
 
能否说明白点:什么情况下会失效报错?
 
在DLL中使用的时候,无奈我后来可 TStringList 类型的对象用
TStringList.Text := TStringList.Text; 来实现
可是我不知道 TPicture.Graphic := TPicture.Graphic 是否会有问题,因为两个都是指针
 
搞不懂,没招
 
TPicture.Graphic := TPicture.Graphic
后是两个TPicture都指向同一个图!

好象有LOAD一类的方法!
 
是啊,我也认为如此,所以可能会有问题。当Free掉一个时,别一个也就崩了
 

Similar threads

后退
顶部