mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-11 01:18:16 +02:00
LazControls: Prevent a ListBox flashing when ListFilterEdit is updated. Move BeginUpdate up. Issue #40279, patch by n7800.
This commit is contained in:
parent
62acfd9909
commit
d0671c7447
@ -200,21 +200,24 @@ begin
|
|||||||
clb:=Nil;
|
clb:=Nil;
|
||||||
if fFilteredListbox is TCustomCheckListBox then
|
if fFilteredListbox is TCustomCheckListBox then
|
||||||
clb:=TCustomCheckListBox(fFilteredListbox);
|
clb:=TCustomCheckListBox(fFilteredListbox);
|
||||||
fFilteredListbox.Clear;
|
|
||||||
fFilteredListbox.Items.BeginUpdate;
|
fFilteredListbox.Items.BeginUpdate;
|
||||||
for i:=0 to fSortedData.Count-1 do begin
|
try
|
||||||
s:=fSortedData[i];
|
fFilteredListbox.Clear;
|
||||||
ListInd:=fFilteredListbox.Items.AddObject(s, fSortedData.Objects[i]);
|
for i:=0 to fSortedData.Count-1 do begin
|
||||||
if Assigned(fSelectedPart) then
|
s:=fSortedData[i];
|
||||||
fFilteredListbox.Selected[i]:=fSelectedPart=fSortedData.Objects[i];
|
ListInd:=fFilteredListbox.Items.AddObject(s, fSortedData.Objects[i]);
|
||||||
if Assigned(clb) then begin
|
if Assigned(fSelectedPart) then
|
||||||
if Assigned(OnCheckItem) then
|
fFilteredListbox.Selected[i]:=fSelectedPart=fSortedData.Objects[i];
|
||||||
clb.Checked[ListInd]:=OnCheckItem(fSortedData.Objects[i])
|
if Assigned(clb) then begin
|
||||||
else
|
if Assigned(OnCheckItem) then
|
||||||
clb.Checked[ListInd]:=fCheckedItems.Contains(s);
|
clb.Checked[ListInd]:=OnCheckItem(fSortedData.Objects[i])
|
||||||
|
else
|
||||||
|
clb.Checked[ListInd]:=fCheckedItems.Contains(s);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
fFilteredListbox.Items.EndUpdate;
|
||||||
end;
|
end;
|
||||||
fFilteredListbox.Items.EndUpdate;
|
|
||||||
if FSimpleSelection and (fSortedData.Count > 0) then begin
|
if FSimpleSelection and (fSortedData.Count > 0) then begin
|
||||||
if (Text<>'') then begin
|
if (Text<>'') then begin
|
||||||
MoveTo(0, true);
|
MoveTo(0, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user