Real Software Forums
http://forums.realsoftware.com/

DoubleBuffer/EraseBackground Help requested
http://forums.realsoftware.com/viewtopic.php?f=6&t=39429
Page 2 of 2

Author:  lenpartico [ Sun Jun 19, 2011 8:10 pm ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

I have uploaded the project at
http://www.mediafire.com/?ygomwy4x64vhtb5

Works great on Mac but I cannot get rid of the flickering on PC.

Would be grateful if anyone can shed some light on how to eliminate or significantly reduce the flickering.

Thanks.

Lennox

Author:  lenpartico [ Sun Jun 19, 2011 8:14 pm ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

Would be grateful if anyone can shed some light on how to eliminate or significantly reduce the flickering on scrolling.

Thanks.

Lennox

Author:  pawn [ Mon Jun 20, 2011 2:14 am ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

for i as integer=0 to self.ControlCount-1
if self.control(i) isa BevelButton then
dim rcontrol as BevelButton = BevelButton(self.control(i))
rcontrol.DrawInto(g,rcontrol.Left-me.left,rcontrol.Top-me.top)
end if
next

Stick this code in at the end of ur paint event in the canvas, i tested it out and it appears to eliminate the flickering when scrolling, but it appears it doesn't help with mouse over flickering with the bevel button... but im pretty sure the mouse over flickering happens to bevel buttons on windows reguardless if they are in a canvas or not, because they just plain suck in my opinion. :(

Author:  pawn [ Tue Jun 21, 2011 11:03 am ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

Hmm let me correct myself a bit. BevelButtons on windows don't normally flicker on mouse over unless they have a icon assigned to them (for whatever reason they flicker then i've noticed) Also I see they flicker when they're on a Canvas, when you mouse over them.

You'll probably want to file/submit a bug report with detailed explanation and example project showing the bug clear as day.

Author:  lenpartico [ Tue Jun 21, 2011 11:27 am ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

Thanks pawn,

I am in the process of converting all those BevelButtons to TextFields, (in the real project about 200 of them), for two reasons:
1) the flickering on mouse enter/exit (on PC) and
2) The triangle to indicate a menu would not be there in the TextField (I prefer that).

The other problem with the flickering on scrolling, I did not see any improvement on PC when I added the code you recommended,

for i as integer=0 to self.ControlCount-1
if self.control(i) isa BevelButton then
dim rcontrol as BevelButton = BevelButton(self.control(i))
rcontrol.DrawInto(g,rcontrol.Left-me.left,rcontrol.Top-me.top)
end if
next

is there something else that I am missing?

Thanks.

Lennox

Author:  swort [ Tue Jun 21, 2011 1:47 pm ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

the best option would be "dont use the bevelbuttons" instead use eighter "normal pushbuttons" or "a plugin button" (like Einhugur or MBS has).

Windows + bevelbuttons + Custom scrolling = bad project

Author:  timhare [ Tue Jun 21, 2011 2:47 pm ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

Don't layer controls. Period. A scrolling interface is usually a sign of a bad UI design (in my opinion, of course). Take a close look at how you are organizing and presenting the data. Maybe a tab panel would be a good option.

If you find you need to scroll the controls for whatever reason, then you're either stuck with flicker on windows, or you need to get creative, by drawing everything on the canvas, or by eliminating the canvas and moving the controls in code.

Author:  pawn [ Tue Jun 21, 2011 3:03 pm ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

lenpartico wrote:
Thanks pawn,

I am in the process of converting all those BevelButtons to TextFields, (in the real project about 200 of them), for two reasons:
1) the flickering on mouse enter/exit (on PC) and
2) The triangle to indicate a menu would not be there in the TextField (I prefer that).

The other problem with the flickering on scrolling, I did not see any improvement on PC when I added the code you recommended,

for i as integer=0 to self.ControlCount-1
if self.control(i) isa BevelButton then
dim rcontrol as BevelButton = BevelButton(self.control(i))
rcontrol.DrawInto(g,rcontrol.Left-me.left,rcontrol.Top-me.top)
end if
next

is there something else that I am missing?

Thanks.

Lennox


It worked fine for me with RealStudio 2010r1.1 in Windows 7 with Aero on and also off..

Author:  pawn [ Tue Jun 21, 2011 3:04 pm ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

oops sorry i mean, RealStudio 2011r1.1

Author:  pate [ Fri Sep 16, 2011 11:42 am ]
Post subject:  Re: DoubleBuffer/EraseBackground Help requested

swort wrote:
the best option would be "dont use the bevelbuttons" instead use eighter "normal pushbuttons" or "a plugin button" (like Einhugur or MBS has).


I own both of those plugins and the buttons in them flicker as well on Windows. I wish the RS stock PushButton had a little more control in terms of hiding the focus rectangle and a few style options. It works really well, no flicker on Windows, but it is as plain as it gets.

Another option that seems to deal with the windows flicker problem well, is third party canvas-based options like Sam Rowlands Interface kit.

-Merv

Page 2 of 2 All times are UTC - 5 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/