lcl: listview: fix TListItems.WSCreateCacheItem. Solves issue #27816

git-svn-id: trunk@51505 -
This commit is contained in:
ondrej 2016-02-05 21:56:28 +00:00
parent 9522f5c460
commit d73ed3f414

View File

@ -214,15 +214,18 @@ end;
{ TListItems IntfCreateItem }
{------------------------------------------------------------------------------}
procedure TListItems.WSCreateCacheItem;
var
xCacheItem: TListItem;
begin
TWSCustomListViewClass(FOwner.WidgetSetClass).ItemInsert(FOwner, FCacheIndex, FCacheItem);
Include(FCacheItem.FFlags, lifCreated);
FCacheItem.WSUpdateText;
FCacheItem.WSUpdateImages;
FCacheItem.WSUpdateChecked;
xCacheItem := FCacheItem; // we must use local copy because FCacheItem changes in WSUpdateText on win32
TWSCustomListViewClass(FOwner.WidgetSetClass).ItemInsert(FOwner, FCacheIndex, xCacheItem);
Include(xCacheItem.FFlags, lifCreated);
xCacheItem.WSUpdateText;
xCacheItem.WSUpdateImages;
xCacheItem.WSUpdateChecked;
if not (lisfWSItemsCreated in FFlags) then
FCacheItem.WSSetState;
FCacheItem.WSUpdateState;
xCacheItem.WSSetState;
xCacheItem.WSUpdateState;
end;
{------------------------------------------------------------------------------}