Browse Source

* Add CanObserve and ObserverAdded to TComponent, for delphi compatibility

Michaël Van Canneyt 1 năm trước cách đây
mục cha
commit
30f514eb6b
2 tập tin đã thay đổi với 15 bổ sung0 xóa
  1. 2 0
      rtl/objpas/classes/classesh.inc
  2. 13 0
      rtl/objpas/classes/compon.inc

+ 2 - 0
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;

+ 13 - 0
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);