TImage的奇怪问题(100)

  • 主题发起人 主题发起人 iseek
  • 开始时间 开始时间
I

iseek

Unregistered / Unconfirmed
GUEST, unregistred user!
我在IMAGE上画了个方框,代码如下:procedure TclForm.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);var r:TRect;begin r:= Rect(X,Y,X+20,Y+20); Image1.Canvas.Brush.Color := RGB2TColor(255, 192, 0); Image1.Canvas.FrameRect(r);end;现在,我想让方框消失。按理,刷新IMAGE1即可,可是,无论怎么刷新还是REPAINT,方框都顽强地存在。IMAGE1里装的是张BMP图片。
 
image1.Canvas.Pen.mode:=pmnot; //笔的模式为取反 //这样再在原处画一遍矩形,相当于擦除矩形。
 
FrameRect(r);不是用的笔
 
Image1.Picture.Bitmap := nil; Image1.Picture.LoadFromFile('原来的图片');
 
在image的canvas上画图像会被保存的,image里的图片被load进以后本身就保存了,你现在画等于修改了原来的图像,所以无论怎么刷新都会有你可以这么改:var r:TRect; cc:TControlCanvas;begin cc:=TControlCanvas.Create; cc.Control:=Image1.Parent; r:= Rect(X,Y,X+20,Y+20); cc.Brush.Color := RGB2TColor(255, 192, 0); cc.FrameRect(r); cc.Free;end;或者直接向form上画procedure TclForm.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);var r:TRect;begin r:= Rect(X,Y,X+20,Y+20); Canvas.Brush.Color := RGB2TColor(255, 192, 0); Canvas.FrameRect(r);end;
 
谢谢hs-kill
 

Similar threads

I
回复
0
查看
721
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
576
import
I
后退
顶部