在部分抓屏时,屏幕闪动,怎么解决? ( 积分: 50 )

  • 主题发起人 主题发起人 googledcjt
  • 开始时间 开始时间
G

googledcjt

Unregistered / Unconfirmed
GUEST, unregistred user!
我在抓屏的时候屏幕闪的特别厉害,哪位高手有好的解决方法?
这是部分代码:
设置画笔:
image1.Canvas.Pen.mode:=pmnot;
image1.canvas.pen.color:=clblack;
image1.canvas.brush.Style:=bsclear;
矩形重画:
with image1.canvas do
begin
rectangle(x1,y1,oldx,oldy);
Rectangle(x1,y1,x,y);
oldx:=x;
oldy:=y;
end
 
我在抓屏的时候屏幕闪的特别厉害,哪位高手有好的解决方法?
这是部分代码:
设置画笔:
image1.Canvas.Pen.mode:=pmnot;
image1.canvas.pen.color:=clblack;
image1.canvas.brush.Style:=bsclear;
矩形重画:
with image1.canvas do
begin
rectangle(x1,y1,oldx,oldy);
Rectangle(x1,y1,x,y);
oldx:=x;
oldy:=y;
end
 
应该是IMAGE的问题吧,猜的
 
我觉得可能是重画矩形造成的,可是怎么解决呢?
 
第一用双缓冲,第二IMAGE的ALIGN不能为ALCLIENT;一般这两点都可能导致闪烁,尤其是image的LAIGN=ALCLIENT时.
 
wei0916,image的align改成了alnone,还是闪哦!双缓冲怎么用?我比较菜,请详细点!
 
就是在内存里作图然后画到你的image上.
 
哦,现在内存里面画,然后再画到image上?哪位能给出简单过程的代码?谢谢了先!
 
self.DoubleBuffered :=true;试一下.
 
哈哈,好了,谢谢各位!
 
多人接受答案了。
 
同意wei0916的意见,但image好象没有DoubleBuffered的,设置image所在的Form或者Panel的DoubleBuffered为True试试
 

Similar threads

后退
顶部