LCL: Solve most performance issues with virtual TListView (OwnerData=True). Issue #39324, patch by d7_2_laz.

This commit is contained in:
Juha 2022-01-27 13:21:16 +02:00
parent 6b71b51df2
commit 4d72245552

View File

@ -1443,13 +1443,19 @@ begin
if not (lffSelectedValid in FFlags) or MultiSelect then if not (lffSelectedValid in FFlags) or MultiSelect then
begin begin
FSelected := nil; FSelected := nil;
for i := 0 to Items.Count - 1 do if (not FOwnerData) or (FSelectedIdx >= 0) then
begin begin
if Items[i].Selected then if MultiSelect and FOwnerData and (FSelectedIdx >= 0) then
begin FSelected := Items[FSelectedIdx]
FSelected := Items[i]; else
break; for i := 0 to Items.Count - 1 do
end; begin
if Items[i].Selected then
begin
FSelected := Items[i];
break;
end;
end;
end; end;
Include(FFlags, lffSelectedValid); Include(FFlags, lffSelectedValid);
end; end;