Quoting Juha Manninen <[email protected]>:
Hi Shouldn't the BeginUpdate and EndUpdate in TMemo.Lines prevent the GUI from updating, thus allowing quickly adding many lines? I made a test app which generates a big amount of random data and has 2 methods to add it to a Memo. 1. uses a temporary StringList and finally calls Assign. 2. adds the strings directly to Memo.Lines between BeginUpdate and EndUpdate. Method number 1. is about 40 times faster! I expected method number 2. to be the fastest. The strange thing is that Assign() also uses BeginUpdate and EndUpdate, and then calls AddStrings() which has its own BeginUpdate and EndUpdate. IMO it should behave identically with Memo.Lines.Add inside BeginUpdate / EndUpdate.
That highly depends on widgetset. I guess that you're talking about qt widgetset. Qt is pretty slow since we do our management of cursor (caret) moving inside QTextEdit , but if you do bulk load of gazillion of lines then such code helps:
Memo.beginUpdate; Memo.WordWrap := False; for i := 0 to SomeNumOfLines do Memo.Add(blabla); Memo.WordWrap := True; Memo.EndUpdate; Of course this helps if you really set WordWrap := True; and you use qt ws. Gtk2 is much faster in this case. z. -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
