git-svn-id: trunk@7647 -
This commit is contained in:
marc 2005-09-07 22:15:54 +00:00
parent 4b46e022df
commit 82782472bc

View File

@ -82,15 +82,16 @@ begin
// NM_CUSTOMDRAW: // NM_CUSTOMDRAW:
// LVN_BEGINDRAG: // LVN_BEGINDRAG:
LVN_DELETEITEM: begin LVN_DELETEITEM: begin
Item := Items[nm^.iItem]; Item := FListItems[nm^.iItem];
if Item = nil then Exit; //? nm^.iItem > Items.Count ?
Exclude(Item.FFlags, lifCreated); Exclude(Item.FFlags, lifCreated);
if not (lifDestroying in Item.FFlags) if not (lifDestroying in Item.FFlags)
then Item.Delete; then Item.Delete;
end; end;
LVN_DELETEALLITEMS: begin LVN_DELETEALLITEMS: begin
for n := Items.Count - 1 downto 0 do for n := FListItems.Count - 1 downto 0 do
begin begin
Item := Items[n]; Item := FListItems[n];
Exclude(Item.FFlags, lifCreated); Exclude(Item.FFlags, lifCreated);
if not (lifDestroying in Item.FFlags) if not (lifDestroying in Item.FFlags)
then Item.Delete; then Item.Delete;
@ -368,10 +369,12 @@ end;
{------------------------------------------------------------------------------} {------------------------------------------------------------------------------}
destructor TCustomListView.Destroy; destructor TCustomListView.Destroy;
begin begin
// Better destroy the wincontrol (=widget) first. So wo don't have to delete
// all items/columns and we won't get notifications for each.
inherited Destroy;
FreeAndNil(FColumns); FreeAndNil(FColumns);
FreeAndNil(FImageChangeLink); FreeAndNil(FImageChangeLink);
FreeAndNil(FListItems); FreeAndNil(FListItems);
inherited Destroy;
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------