[Lazarus] TMemo flicker

Jürgen Hestermann juergen.hestermann at gmx.de
Mon Apr 29 18:34:07 CEST 2013


After having moved from TStringList over TStringGrid (which both cannot be shifted right to make long text visible) I now use TMemo. But again I have another issue with this component: If there are more rows than can be displayed in the window and I change the text in the last row (Lines.Count-1) rapidly then the whole display flickers. This OnClick event demonstrates it:

-------------------------------------------------------
with Memo1 do
    begin
    for i := 1 to 40 do
       begin
       if odd(i) then
Append('\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')
       else
Append('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       end;
    for i := 1 to 1000 do
       begin
       Lines[Lines.Count-1] := '#### LAST LINE ---'+IntToStr(i)+'-----------------------------------------------------------';
       Application.Processmessages;
       end;
    Memo1.Lines[Lines.Count-1] := '#### READY #### ';
    end;
-------------------------------------------------------

When you click on the memo (so that the routine runs) and the window is small enough then all lines are shifted down for a short time and then are shifted up again when writing to Memo1.Lines[Lines.Count-1]. This flicker is quite disturbing and it does not happen when there are only a few lines (which fit in the window). Is this a known bug?





More information about the Lazarus mailing list