Announcement

Collapse
No announcement yet.

Is a virtual listview suitable fo heavy use?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Michael Mattias
    replied
    >It's in report mode, each column represents a fieldname

    And?

    If your goal was to confuse me, you have succeeded.

    Your stated source is a recordset; each row of a recordset presumably (code not shown) contains the same number of fields in each row; the same number of fields each row = same number of columns each row.

    ???

    MCM

    Leave a comment:


  • Edwin Knoppert
    replied
    >You never need to create or remove columns;
    It's in report mode, each column represents a fieldname.

    Leave a comment:


  • Michael Mattias
    replied
    > One of the issues is that the LV requests the item in a not sequential manner

    Perhaps not, but the LV will never request info on an item which is not visible, unless you tell it to.

    To help you mange what you do cache, a virtual listview sends the WM_NOTIFY/LVN_ODCACHEHINT, ODFINDITEM and ODSTATECHANGED notification messages to help you.

    That said, I've used a virtual listview with over with the number of items (rows) constantly changing up to over 1M and have no problems with the performance at all. Works good. My application does cache everything, however, so I am not using the "hint" messages.

    > that creating columns, ....and remove columns

    ???

    You never need to create or remove columns; That is fixed. All you ever change with a 'regular' virtual listview is the total number of rows, and that's just a call to ListView_SetITemCountEx.




    MCM

    Leave a comment:


  • Edwin Knoppert
    started a topic Is a virtual listview suitable fo heavy use?

    Is a virtual listview suitable fo heavy use?

    I am not sure but i have the feeling that creating columns, increase item count, reset to 0 items and remove columns and than populate again over and over is not working 100%

    I would like to write me a virtual listview on a forward only recordset.
    One of the issues is that the LV requests the item in a not sequential manner.
    On paint it can request item 10 before item 1, so when that happens i obtain all records up to 10 and store them in a fast buffer.
    The database will not be accessed for those records.

    Someone having experiance how to set this up?
    I am currently doing all of this in the displayinfo event.
    The database can only read forward.
    Setting an huge itemcount is no practical solution but increasing the item count with ~100 would do.
Working...
X