小 小总水 Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-29 #1 在用TImage作图时,动态改变了width和height,但其 Canvas的Cliprect不变,如何解决?
H hntangwei Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-29 #2 在Delphi的help里好象是说,如果width and height超过了canvas的 话,cliprect 是不生效的。 自已再好好see help吧.
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-29 #3 image.width := newwidth; image.height := newheight; // add following lines: image.picture.bitmap.width := newwidth; image.picture.bitmap.height := newheight;
image.width := newwidth; image.height := newheight; // add following lines: image.picture.bitmap.width := newwidth; image.picture.bitmap.height := newheight;
B bethouvnlue Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-29 #4 cliprect 是与作图的 bitmap 相关的.应该是小于等于bitmap的大小. 是你图形的重画可见部分大小.
L lwlnic Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-29 #5 TIMAGE的AUTOSIZE设为TRUE。 你应该自己重画变化的图象
C cytown Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-29 #6 Image1.Picture.Bitmap.Width := Image1.Width; Image1.Picture.Bitmap.Height := Image1.Height;
M mumin Unregistered / Unconfirmed GUEST, unregistred user! 1999-11-27 #7 区域是屏幕上用于控制画布绘图区的部分。 TCanvas类有个ClipRect属性,是只读属性。为了改变剪取区域, 要使用Windows API。将上例稍作修改,看看剪取区域如何工作。 代 码如下: Graphics::TBitmap* bitmap=new Graphics::TBitmap; bitmap->LoadFromFile("handshak.bmp"); HRGN hRgn=CreateRectRgn(50,50,250,250); SelectClipRgn(Canvas>Handle,hRgn); Canvas>Draw(0,0,bitmap);delete bitmap;
区域是屏幕上用于控制画布绘图区的部分。 TCanvas类有个ClipRect属性,是只读属性。为了改变剪取区域, 要使用Windows API。将上例稍作修改,看看剪取区域如何工作。 代 码如下: Graphics::TBitmap* bitmap=new Graphics::TBitmap; bitmap->LoadFromFile("handshak.bmp"); HRGN hRgn=CreateRectRgn(50,50,250,250); SelectClipRgn(Canvas>Handle,hRgn); Canvas>Draw(0,0,bitmap);delete bitmap;
S SuperMMX Unregistered / Unconfirmed GUEST, unregistred user! 1999-12-15 #9 这样也可以吧 image.picture.bitmap.width := newwidth; image.picture.bitmap.height := newheight; image.width := newwidth; image.height := newheight;
这样也可以吧 image.picture.bitmap.width := newwidth; image.picture.bitmap.height := newheight; image.width := newwidth; image.height := newheight;
Y yang_pk Unregistered / Unconfirmed GUEST, unregistred user! 1999-12-17 #10 TCanvas类有ClipRect属性,是只读属性。 为了改变剪取区域,需要使用Windows API。 eg: procedure .... var myRgn :HRgn; . . . begin . . . myRgn :=CreateRectRgn(100,100,200,200); SelectClipRgn(Image1.Canvas.Handle,myRgn); Canvas.Draw(...); . . . SelectClipRgn(Image1.Canvas.Handle,0); DeleteObject(myRgn); end;
TCanvas类有ClipRect属性,是只读属性。 为了改变剪取区域,需要使用Windows API。 eg: procedure .... var myRgn :HRgn; . . . begin . . . myRgn :=CreateRectRgn(100,100,200,200); SelectClipRgn(Image1.Canvas.Handle,myRgn); Canvas.Draw(...); . . . SelectClipRgn(Image1.Canvas.Handle,0); DeleteObject(myRgn); end;
W www Unregistered / Unconfirmed GUEST, unregistred user! 1999-12-17 #11 先改变image内图象的大小再改变image的大小,这样对image的大小的改变才起作用 bmp.width:=100; bmp.height:=100; image1.width:=bmp.width; image1.height:=bmp.height; 如果 image1.width:=bmp.width; image1.height:=bmp.height; bmp.width:=100; bmp.height:=100; 就不起作用了。
先改变image内图象的大小再改变image的大小,这样对image的大小的改变才起作用 bmp.width:=100; bmp.height:=100; image1.width:=bmp.width; image1.height:=bmp.height; 如果 image1.width:=bmp.width; image1.height:=bmp.height; bmp.width:=100; bmp.height:=100; 就不起作用了。
B BrainTwist Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-19 #12 Another_eYes的方法很好。我试过了。捡了个便宜。省了不少银子。嘻嘻!
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-19 #13 $@#!%&$@%!! 不能给自己加分