用程序移动Image上的Label时会有闪烁感,如何消除?(50分)

  • 主题发起人 主题发起人 songhb
  • 开始时间 开始时间
S

songhb

Unregistered / Unconfirmed
GUEST, unregistred user!
在TImage控件上放一个Label,设为透明,Image为一16位真彩色图像,
当我在程序中改变Label的位置来移动Label时,
Label会有一种闪烁感,造成界面效果不好,
该如何解决?
 
用THintwindow试一下
 
to LanFairy:
用THintwindow不能实现透明,有没有其他的办法?
 
把label的doublebuffered设为true会好一点点。
 
会有闪烁???
你试试 :
在Timer.OnTimer事件里 :
Label.Left :=Random(200);
Label.Top :=Random(200);
 
To sonie:
请教label的doublebuffered属性是什么?如何使用?
 
To 卷起千堆雪tyn:
我的目的是使label连续移动,当label后有图像时随机移动不会有闪烁,
但连续移动会有,当label较大时会很明显,当图像为真彩色且有放缩时更为明显。
我该如何做才不会有闪烁呢?
 
直接在程序中加一句(如在form的oncreate中)
label1.doublebuffered:=true;
 
To sonie:
Tlabel没有doublebuffered的属性呀
 
还是用Additional页面下的StaticText1控件吧,很好用的,只要把
你现在窗体上的Label1删掉,加入StaticText1,更名为Label1即可,
程序不用动,不防试一下,别忘了把分给我啊!哈哈.....
 
faint,你只管写就是了,其它的你不用管。
 
To:hryyx
TStaticText没有Transparent属性,不能透明,我要透明的效果。

To:sonie
不行呀,老兄,编译不过呀。
 
twincontrol(label1).doublebuffered:=true;
 
别用 LABEL 了,用image1.Canvas.TextOut函数直接在画布上输出你想要的文字不就行了。
 
我以前写五子棋也出现过这问题,解决方法是在内存中建一个BITMAP,把LABEL写在它上,
再load 进image,肯定行,给分!!!
 
只要对IMAGE的一个属性控制一下就行了,可能是Strech即拉伸这个属性设为FALSE即可、..
 
to che2001给一个例子,我给你分
 
闪烁正常刷新。把Image.Stretch设为TRUE可以减少闪烁。
 
参考wm_setredraw函数,看可以吗?
 
Quote
==========
来自:RedBeret, 时间:2001-6-21 8:35:00, ID:575536
别用 LABEL 了,用image1.Canvas.TextOut函数直接在画布上输出你想要的文字不就行了。
==========
同意RedBeret
 
后退
顶部