From 30f514eb6bf1ef0acf5fd6f7fa0246671f5089fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Mon, 19 Feb 2024 11:21:34 +0100 Subject: [PATCH] * Add CanObserve and ObserverAdded to TComponent, for delphi compatibility --- rtl/objpas/classes/classesh.inc | 2 ++ rtl/objpas/classes/compon.inc | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc index ca3bbf8c0a..91136c9bcd 100644 --- a/rtl/objpas/classes/classesh.inc +++ b/rtl/objpas/classes/classesh.inc @@ -2434,6 +2434,8 @@ type protected FComponentStyle: TComponentStyle; function GetObservers: TObservers;virtual; + function CanObserve(const ID: Integer): Boolean; virtual; + procedure ObserverAdded(const ID: Integer; const Observer: IObserver); virtual; procedure GetDeltaStreams(aProc: TGetStreamProc); virtual; procedure ReadDeltaStream(const S: TStream); procedure ReadDeltaState; virtual; diff --git a/rtl/objpas/classes/compon.inc b/rtl/objpas/classes/compon.inc index b3b8394a2f..a495a57997 100644 --- a/rtl/objpas/classes/compon.inc +++ b/rtl/objpas/classes/compon.inc @@ -108,10 +108,23 @@ end; function TComponent.GetObservers: TObservers; begin if FDObservers=Nil then + begin FDObservers:=TObservers.Create; + FDObservers.OnCanObserve:=@CanObserve; + FDObservers.OnObserverAdded:=@ObserverAdded; + end; Result:=FDObservers; end; +function TComponent.CanObserve(const ID: Integer): Boolean; +begin + Result:=False; +end; + +procedure TComponent.ObserverAdded(const ID: Integer; const Observer: IObserver); +begin + // Do nothing, can be used in descendants +end; Procedure TComponent.Insert(AComponent: TComponent);