title: TVirtualStringTree - variable row height optimization
body: <p>In our application I'm moving from a TStringGrid to TVirtualStringTree component. A lot of data is being displayed (max. 50000 lines and 5 columns). One column contains on or more lines of text. I managed to implement multiline functionality using 'DrawCell' in the stringgrid with optimal performance: instant redraw of all lines (on resize) and scrolling without hitches (I have a list of row heights in memory, which will be updated when redraw is needed).</p>
  
  <p>Transferring this multiline functionality to the VirtualStringTree is not as performant as the stringgrid alternative. I tried numerous implementations but have not yet succeeded. This is easily reproducable in the Demo application of the VirtualStringTree installation package: </p>
  
  <ol>
  <li>In the 'MultilineDemo' form, set the 'rootNodeCount' of the VirtualStringTree to 10.000.</li>
  <li>When running the demo, select 'Automatically adjust node height to node text.'</li>
  </ol>
  
  <p>Initial redraw/repaint will take a while using lots of CPU. Ater each resize, jumping to top/bottom causes the same phenomenon, or even causing a 'stack overflow' exception (but that's another issue ...). The 'OnMeasureItem' method is called way too much, the way I see it (even on 'MouseMove' events).</p>
  
  <p>Has anyone had this problem and managed to find a solution?</p>