请教如何实现内存画图,消除闪动? 我是在timer事件里实现的画图,每次画之前先清除上次的图像。但是闪动的厉害,据说先把图像画到内存在copy到paintbox上能解决,可是o是个初学者,所以请高手帮忙。谢谢。最好举个例子阿,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 画图之前先加一句self.Parent.DoubleBuffered:=True; procedure TfmAdvanceSet.DrawGamaLine(Value: Real);const MAXINT = 255;var ix,iy: Integer; bmp: TBitmap;begin bmp := TBitmap.Create; try bmp.Width := Image1.Width; bmp.Height := Image1.Height; bmp.Canvas.Brush.Color := clBlack; bmp.Canvas.Pen.Color := clBlue; bmp.Canvas.Rectangle(0,0,bmp.Width,bmp.Height); bmp.Canvas.Pen.Color := clLime; bmp.Canvas.MoveTo(0,bmp.Height); for ix := 1 to MAXINT do begin iy := MAXINT - Trunc(Exp(ln(ix/MAXINT)* (1/Value))*MAXINT); bmp.Canvas.LineTo(ix,iy); end; Image1.Picture.Assign(bmp); finally bmp.Free; end;end; 最专业的就是DirectX或者OpenGL,只要你有空去看那些C++写的范例和厚厚的书(编程以及立体几何)。 以前说过原因了,你看一下http://community.csdn.net/Expert/topic/4226/4226032.xml?temp=.544491原因是delphi的doubleBouble每次画完一个图形就交换一次缓存,你连续画2个它就连续交换两次,当然闪。我现在用opengl,还要把gdi的缓存关掉,自己画, delphi深度历险上面讲的很清楚. ado 连接操作dbf文件 如何给Ttreenode添加一个属性或变量来存储一个字符串 谁用过Turboc Pascal?感觉如何? 软件发布,是关于软件工程中文转换的。 请教:怎样隐藏FORM? 请教一个问题。急 DirectDraw与DirectShow关于overlay的问题 用DBGRID显示数据库查询结果时,如果在其中显示数据记录顺序号?急!急!急! <<<关于程序的减肥问题>>> 急!!!那位dialogic卡的大虾帮帮小妹!!! 如何在程序中嵌入和使用WINDOWS MEDIA PLAY控件(非自带TMedia Play控件) 还是一个基础问题,请各位看看,帮帮忙。
self.Parent.DoubleBuffered:=True;
const
MAXINT = 255;
var
ix,iy: Integer;
bmp: TBitmap;
begin
bmp := TBitmap.Create;
try
bmp.Width := Image1.Width;
bmp.Height := Image1.Height;
bmp.Canvas.Brush.Color := clBlack;
bmp.Canvas.Pen.Color := clBlue;
bmp.Canvas.Rectangle(0,0,bmp.Width,bmp.Height);
bmp.Canvas.Pen.Color := clLime;
bmp.Canvas.MoveTo(0,bmp.Height);
for ix := 1 to MAXINT do
begin
iy := MAXINT - Trunc(Exp(ln(ix/MAXINT)* (1/Value))*MAXINT);
bmp.Canvas.LineTo(ix,iy);
end;
Image1.Picture.Assign(bmp);
finally
bmp.Free;
end;
end;
http://community.csdn.net/Expert/topic/4226/4226032.xml?temp=.544491
原因是delphi的doubleBouble每次画完一个图形就交换一次缓存,你连续画2个它就连续交换两次,当然闪。
我现在用opengl,还要把gdi的缓存关掉,自己画,