Werner Pamler wrote 15 lines
Am 27.11.2017 um 16:21 schrieb Werner Pamler via Lazarus:
> (a) What is "fast"? If I populate a standard TStringGrid with 100.000
> rows x 100 columns (= 10 millions of cells) it takes about 9 seconds
> on my PC - if BeginUpdate/EndUpdate is used. Not too bad in my eyes.
> If it's too long you should use a TDrawGrid and paint the cells in
> the OnDrawCell event. Since this draws only the visible cells it will
> occur within the blink of an eye. Editing a TDrawGrid is a bit more
> complicated, though, but doable.
I forgot: Of course, this does not take into account the time it takes
to populate the primary storage of the data shown in the DrawGrid.
Filling a 2D-array with millions of strings, for example, will take
its time too, 6 seconds on my PC for a 100.000 x 100 array. In these
tests, the string is assembled as 'R' + IntToStr(rowindex) + 'C' +
IntToStr(colIndex).
Yes, sorry for the lack of other factors too - those were just the two most needed.
I already have the data at hand in my own object structure so that is no problem. By fast i mean less than one second, even on a modern PC. The users of our program often have old or very old hardware in which case my/your 9 seconds turns to 30 or more seconds.
In reallity all i need is a read-only grid that can display the data in string format and range selection so that i can copy/paste the data to the clipboard.
From your reply it seems i am going with TDrawGrid.
Thank you for the help!
Regards,
Torsten.
Show quoted text 5 lines
Look at attached demo.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20171127/9406344a/attachment.html>