Steps to reproduce:
TPanel to a new VCL form and set Align = alClient.TSpeedButton to the panel and assign some bmp image to the Glyph property. (Optional but makes it clearer: Flat = True)TSpeedButton will flicker.I read a lot about getting rid of flickering, but neither of the suggestions seem to work for a TSpeedButton:
DoubleBuffered propertyWS_EX_COMPOSITED can't be set, because it's not a TWinControl but a TGraphicControl
WM_ERASEBKGND message isn't receivedIn 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?
Edit: 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
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.
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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With