mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-22 02:09:38 +01:00
listview: fixes for improper OwnerDataListItem.Owner. #18961
git-svn-id: trunk@30832 -
This commit is contained in:
parent
90fa711a3a
commit
a32a3ef4ca
@ -786,6 +786,7 @@ type
|
||||
procedure DoCacheItem;
|
||||
public
|
||||
procedure SetDataIndex(ADataIndex: Integer);
|
||||
procedure SetOwner(AOwner: TListItems);
|
||||
end;
|
||||
|
||||
{ TListItemsEnumerator }
|
||||
|
||||
@ -469,7 +469,7 @@ end;
|
||||
{------------------------------------------------------------------------------}
|
||||
procedure TCustomListView.SetItems(const AValue : TListItems);
|
||||
begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
{ TCustomListView SetItemVisible }
|
||||
@ -1045,16 +1045,18 @@ procedure TCustomListView.SetOwnerData(const AValue: Boolean);
|
||||
begin
|
||||
if FOwnerData=AValue then exit;
|
||||
FOwnerData:=AValue;
|
||||
FOwnerDataItem.SetOwner(nil);
|
||||
Items.Free;
|
||||
if AValue then
|
||||
begin
|
||||
FSelectedIdx:=-1;
|
||||
Items:=TOwnerDataListItems.Create(Self);
|
||||
FListItems:=TOwnerDataListItems.Create(Self);
|
||||
end else
|
||||
Items:=TListItems.Create(Self);
|
||||
FListItems:=TListItems.Create(Self);
|
||||
|
||||
if HandleAllocated then
|
||||
TWSCustomListViewClass(WidgetSetClass).SetOwnerData(Self, AValue);
|
||||
FOwnerDataItem.SetOwner(FListItems);
|
||||
end;
|
||||
|
||||
procedure TCustomListView.SetProperty(const ALvpOrd: Integer;
|
||||
|
||||
@ -809,6 +809,15 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TOwnerDataListItem.SetOwner(AOwner: TListItems);
|
||||
begin
|
||||
FOwner:=AOwner;
|
||||
FFlags := [];
|
||||
FStates := [];
|
||||
FImageIndex := -1;
|
||||
FreeAndNil(FSubItems);
|
||||
end;
|
||||
|
||||
function TOwnerDataListItem.GetSubItems: TStrings;
|
||||
begin
|
||||
if not FCached then DoCacheItem;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user