From c213a4187a6efb0a8b66d110f7c5cb01c337761e Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 16 Mar 2017 13:48:38 +0000 Subject: [PATCH] * Fix bug ID #21458 git-svn-id: trunk@35607 - --- rtl/objpas/classes/compon.inc | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/rtl/objpas/classes/compon.inc b/rtl/objpas/classes/compon.inc index 7723b784d2..874840cb43 100644 --- a/rtl/objpas/classes/compon.inc +++ b/rtl/objpas/classes/compon.inc @@ -291,21 +291,22 @@ end; Procedure TComponent.Notification(AComponent: TComponent; Operation: TOperation); -Var Runner : Longint; +Var + C : Longint; begin - If (Operation=opRemove) and Assigned(FFreeNotifies) then + If (Operation=opRemove) then + RemoveFreeNotification(AComponent); + If Not assigned(FComponents) then + exit; + C:=FComponents.Count-1; + While (C>=0) do begin - FFreeNotifies.Remove(AComponent); - If FFreeNotifies.Count=0 then - begin - FFreeNotifies.Free; - FFreenotifies:=Nil; - end; - end; - If assigned(FComponents) then - For Runner:=0 To FComponents.Count-1 do - TComponent(FComponents.Items[Runner]).Notification(AComponent,Operation); + TComponent(FComponents.Items[C]).Notification(AComponent,Operation); + Dec(C); + if C>=FComponents.Count then + C:=FComponents.Count-1; + end; end;