消除TSpeedButton的闪烁 [英] Remove flickering from TSpeedButton
问题描述
重现步骤:
- 在新的VCL表单中添加
TPanel
并设置Align = alClient
。 - 向面板添加
TSpeedButton
并分配一些bmp图片添加到Glyph
属性。 (可选,但更清楚:Flat = True
) - 运行应用程序,抓住表单的右下角并将其移动周围。
TSpeedButton
中的图像会闪烁。
- Add
TPanel
to a new VCL form and setAlign = alClient
. - Add
TSpeedButton
to the panel and assign some bmp image to theGlyph
property. (Optional but makes it clearer:Flat = True
) - Run the application, grab the bottom right corner of the form and move it around. The image in the
TSpeedButton
will flicker.
我读了很多关于获取摆脱了闪烁,但是这两个建议似乎都不适合 TSpeedButton
:
I read a lot about getting rid of flickering, but neither of the suggestions seem to work for a TSpeedButton
:
- 没有
DoubleBuffered
属性 -
WS_EX_COMPOSITED
无法设置,因为它不是TWinControl
,而是TGraphicControl
-
未收到WM_ERASEBKGND
消息
- There's no
DoubleBuffered
property WS_EX_COMPOSITED
can't be set, because it's not aTWinControl
but aTGraphicControl
WM_ERASEBKGND
message isn't received
如果有任何重要意义,我实际上正在使用 TPngSpeedButton
,但是由于实际问题出在 TSpeedButton
之内,因此我在示例中使用了它。
In case it is of any importance, I'm actually using TPngSpeedButton
, but since the actual problem lies within the TSpeedButton
, I'm using that in the example.
对此有任何解决方案吗?
Is there any solution for this?
编辑:由于某种原因,没有人能够复制到目前为止,为了确保不是我的描述,这是dfm:
For some reason nobody is able to reproduce this so far, so to make sure it's not my description, here's the dfm:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 337
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 635
Height = 337
Align = alClient
Caption = 'Panel1'
TabOrder = 0
object SpeedButton1: TSpeedButton
Left = 64
Top = 56
Width = 32
Height = 32
Flat = True
Glyph.Data = {
360C0000424D360C000000000000360000002800000020000000200000000100
180000000000000C000000000000000000000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FCC483FCC483FCC483F241CED241CED241CED241CED241CEDCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FCC483FCC483FCC483F241CED241CED241CED241CED241CEDCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FCC483FCC483FCC483F241CED241CED241CED241CED241CEDCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FCC483FCC483FCC483F241CED241CED241CED241CED241CEDCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FCC483FCC483FCC483F241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FFFFFFFFFFFFFFFFFFF241CED241CED241CED241CED241CED241C
ED241CED241CED241CED241CED241CED241CED241CED241CED241CED241CED24
1CED241CED241CED241CED241CED241CED241CED241CED241CEDCC483FCC483F
CC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC483F
CC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC483F
CC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC483F
CC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC483F
CC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC483F
CC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC483FCC483F
CC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC483FCC48
3FCC483FCC483FCC483FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
end
end
end
这就是它的外观。实际上,它的速度要快一些,但是捕获的视频和gif转换会使其速度变慢。
And this is how it looks. In reality it's a little bit faster, but the captured video and gif conversion slows it down a bit.
推荐答案
我实际上能够使用Delphi 10.2.3 Tokyo在Windows 7上重现它。
我经常遇到类似的问题,从那时起,我一直在对所有 TPanel
及其子代使用此设置,在这种情况下也可以使用。 / p>
I was actually able to reproduce it on Windows 7 with Delphi 10.2.3 Tokyo.
I have had similar problems quite often and since then I've been using this settings for all TPanel
and its descendants, which worked in this case as well.
Panel1.DoubleBuffered := True;
Panel1.ParentBackground := False;
这篇关于消除TSpeedButton的闪烁的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!