On 2017-11-27 16:48, Werner Pamler via Lazarus wrote:
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.



Look at attached demo.




-- 
_______________________________________________
Lazarus mailing list
[email protected]
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to