[Lazarus] flickering on statusbar panel

Andrea Mauri andrea.mauri.75 at gmail.com
Fri Dec 19 11:52:18 CET 2008


The code I wrote in the e-mail is just a sample!
Anyway, create a new project, drop a label, a statusbar and a button on 
the form. Create a panel on the statusbar.
On buttonclick drop the following code:

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
i:= 0;
while i < 10000 do
begin
//  Application.ProcessMessages;
  label1.Caption:= Format('Number: %d', [i]);
  statusbar1.Panels[0].Text:= Format('Number: %d', [i]);
  Inc(i);
end;   

Clicking on the button the text in the statusbar panel start to be 
updated, and it flickers. The text in the caption is updated only at the 
end of the while do cycle.
If I uncomment the line Application.ProcessMessages both texts in label 
and in statusbar panel are updated during the while do cycle. The text 
in the label does not flicker while the text in the statusbar panel 
flickers.
I tested it on WinXP with lazarus v0.9.27 r17856 i386-win32-win32/win64 
and fpc 2.2.2
The same code works on Linux with lazarus svn and fpc 2.2.2 (statusbar 
and label do not flicker).
I hope that I well explained the problem.
Best regards,
Andrea


Reenen Laurie ha scritto:
> i:= 0;
> while condition do
> begin
>  readln(f, str);
>  label1.Caption:= Format('Number: %d', [i]);
>  statusbar1.Panels[0].Text:= Format('Number: %d', [i]);
>  Inc(i);
> end;
>
> If condition stays true, then statusbar will flicker continuously... 
> (being updated continuously)
>
> you don't have an "exit" condition here (like "while not EOF(F) do")
>
> Maybe this will help?
>
> Also, just for information:
> Which OS are you on, which version of that OS and which SVN version 
> (or Lazarus release version)?
>
> Regards,
> -Reenen
>
>
>
> On Fri, Dec 19, 2008 at 11:17 AM, Andrea Mauri 
> <andrea.mauri.75 at gmail.com <mailto:andrea.mauri.75 at gmail.com>> wrote:
>
>
>     Mattias Gaertner ha scritto:
>     > On Thu, 18 Dec 2008 14:58:58 +0100
>     > Andrea Mauri <andrea.mauri.75 at gmail.com
>     <mailto:andrea.mauri.75 at gmail.com>> wrote:
>     >
>     >
>     >> But why, same monitor, same application, labels do not flicker
>     while
>     >> statusbar flickers?
>     >>
>     >
>     > If statusbar text and properties do not change and it still flickers
>     > when it is repainted, then there is a bug in the double buffering.
>     > Please create a bug report.
>     >
>     > Mattias
>     >
>
>     As I wrote in my first e-mail in this thread the statusbar
>     flickers when
>     the text changes.
>     This is what I wrote in my first e-mail:
>
>     "
>     Dear all,
>     I encountered a flickering problem when using a statusbar under winxp
>     (lazarus v0.9.27 r17839 i386-win32-win32/win64 fpc 2.2.2)
>     Using a code similar to the following:
>
>     i:= 0;
>     while condition do
>     begin
>      readln(f, str);
>      label1.Caption:= Format('Number: %d', [i]);
>      statusbar1.Panels[0].Text:= Format('Number: %d', [i]);
>      Inc(i);
>     end;
>
>     The text in the status bar panel flickers a lot while the same text in
>     the label does not flicker.
>     On Linux Ubuntu also the statusbar works fine.
>     Another issue, but I am not sure because I made just some few
>     tests, it
>     seems that writing on the statusbar is a little slower than
>     writing on a
>     label.
>     "
>
>     So the text changes (not all the text, 'Number: ' string is fixed)
>     in the statusbar, no other properties change.
>     I encounter this problem only on windows. Labels work properly.
>     Confirm that I have to create a bug report.
>     Thanks,
>     Andrea
>
>
>     > _______________________________________________
>     > Lazarus mailing list
>     > Lazarus at lazarus.freepascal.org
>     <mailto:Lazarus at lazarus.freepascal.org>
>     > http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>     >
>     >
>
>     --
>     Dr. Andrea Mauri, PhD
>     Milano Chemometrics and QSAR Research Group
>     Department of Environmental Sciences
>     University of Milano-Bicocca
>     P.zza della Scienza, 1
>     20126 Milano - Italy
>
>     Tel: ++39 02 64482801
>     mailto:andrea.mauri.75 at gmail.com <mailto:andrea.mauri.75 at gmail.com>
>     http://michem.disat.unimib.it/chm/
>
>     _______________________________________________
>     Lazarus mailing list
>     Lazarus at lazarus.freepascal.org <mailto:Lazarus at lazarus.freepascal.org>
>     http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>
>
>
> -- 
> o__
> ,_.>/ _
> (_)_\(_)_______
> ...speed is good
> _______________
> I believe five out of four people have a problem with fractions.
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>   

-- 
Dr. Andrea Mauri, PhD
Milano Chemometrics and QSAR Research Group
Department of Environmental Sciences
University of Milano-Bicocca 
P.zza della Scienza, 1
20126 Milano - Italy

Tel: ++39 02 64482801
mailto:andrea.mauri.75 at gmail.com
http://michem.disat.unimib.it/chm/ 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20081219/d12a68df/attachment-0007.html>


More information about the Lazarus mailing list