关于image控件 最近作了一个作图软件,让使用者在image上画图,可是在画图时屏幕老是闪,请问为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 paintbox画图时不闪,但不能实现文件保存,请问如何解决? iamge上放一个paintbox可以解决屏幕闪的问题但保存的文件是空的,paintbox不能实现文件保存,请问怎么办? var bmp: TBitmap;begin bmp := TBitmap.Create; try bmp.Width := PaintBox.Width; bmp.Height := PaintBox.Height; BitBlt(bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, PaintBox.Canvas.Handle, 0, 0, SRCCOPY); bmp.SaveToFile('C:\myFile.BMP'); finally bmp.Free; end;end;“无声”高手写的。 兩者都是從TGraphicControl繼承過來, 它們沒有本質的區別, 它們的區別是TImage比TPaintBox多了一些東西而已 如Picture,一般都是用TPaintBox.因為Timage中大部份的東西是對你沒什么用的! 當然你也可能用Timage,在做圖形時解決閃的問題有如下方法:1 :將Image的parent 如Form (TwinControl)的DoubleBuffer設為True ;2 :你做的圖形采用雙Buffer, 在buffer里畫完后用Invalidate通知Timage重畫, 在Onpaint里只需將你Buffer里的內容Copy到Image.Canvas就ok見義你用TPaintBox , 想保存 用如下方法:procedure SavetoFile(PaintBox:TPaintBox;FileName:TFileName);var aBitmap : TBitmap ;begin Assert(PaintBox<>nil); Assert(FileName<>''); aBitmap := TBitmap.Create ; try abitmap.Width := PaintBox.Width ; abitmap.Height := PaintBox.Height ; abitmap.Canvas.CopyRect(Rect(0,0,PaintBox.Width,PaintBox.Height), PaintBox.Canvas, Rect(0,0,PaintBox.Width,PaintBox.Height)); abitmap.SaveToFile(FileName); finally aBitmap.Free ; end;end;就ok了“港”OR“澳”OR“台”朋友写的^_* procedure SavetoFile(PaintBox:TPaintBox;FileName:TFileName);var aBitmap : TBitmap ;begin Assert(PaintBox<>nil); Assert(FileName<>''); aBitmap := TBitmap.Create ; try abitmap.Width := PaintBox.Width ; abitmap.Height := PaintBox.Height ; abitmap.Canvas.CopyRect(Rect(0,0,PaintBox.Width,PaintBox.Height), PaintBox.Canvas, Rect(0,0,PaintBox.Width,PaintBox.Height)); abitmap.SaveToFile(FileName); finally aBitmap.Free ; end;end; 窗口消息循环,线程消息循环,区别??? 如果把APP复制一份放在同一个服务器,用不能的客户端连接不的APP,怎么区分开来的啊? 恭喜小伍当爹了 关于多态性,winxkm(蹩脚的程序员)和sanmaotuo(老冯)认识不同,我迷糊了,请高手指点! 谁能帮我解释一下这个函数的意思, 几个难点? 怎么判断文本框里输入的值不是数值型! 接收数据源的问题(100)高手请教! 一个急待解决的问题!谢谢各位。 如何把一幅图片导入数据库中呢? 关于paintbox控件 急!如何使dbgrid的列头有按下去的效果?
paintbox不能实现文件保存,请问怎么办?
bmp: TBitmap;
begin
bmp := TBitmap.Create;
try
bmp.Width := PaintBox.Width;
bmp.Height := PaintBox.Height;
BitBlt(bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height,
PaintBox.Canvas.Handle, 0, 0, SRCCOPY);
bmp.SaveToFile('C:\myFile.BMP');
finally
bmp.Free;
end;
end;
“无声”高手写的。
1 :將Image的parent 如Form (TwinControl)的DoubleBuffer設為True ;
2 :你做的圖形采用雙Buffer, 在buffer里畫完后用Invalidate通知Timage重畫, 在Onpaint里只需將你Buffer里的內容Copy到Image.Canvas就ok見義你用TPaintBox , 想保存 用如下方法:
procedure SavetoFile(PaintBox:TPaintBox;FileName:TFileName);
var
aBitmap : TBitmap ;
begin
Assert(PaintBox<>nil);
Assert(FileName<>'');
aBitmap := TBitmap.Create ;
try
abitmap.Width := PaintBox.Width ;
abitmap.Height := PaintBox.Height ;
abitmap.Canvas.CopyRect(Rect(0,0,PaintBox.Width,PaintBox.Height),
PaintBox.Canvas,
Rect(0,0,PaintBox.Width,PaintBox.Height));
abitmap.SaveToFile(FileName);
finally
aBitmap.Free ;
end;
end;就ok了
“港”OR“澳”OR“台”朋友写的^_*
var
aBitmap : TBitmap ;
begin
Assert(PaintBox<>nil);
Assert(FileName<>'');
aBitmap := TBitmap.Create ;
try
abitmap.Width := PaintBox.Width ;
abitmap.Height := PaintBox.Height ;
abitmap.Canvas.CopyRect(Rect(0,0,PaintBox.Width,PaintBox.Height),
PaintBox.Canvas,
Rect(0,0,PaintBox.Width,PaintBox.Height));
abitmap.SaveToFile(FileName);
finally
aBitmap.Free ;
end;
end;