|
@@ -667,7 +667,7 @@ begin
|
|
Raise EObserver.CreateFmt(SErrNotObserver,[AObserver.ClassName]);
|
|
Raise EObserver.CreateFmt(SErrNotObserver,[AObserver.ClassName]);
|
|
If not Assigned(FObservers) then
|
|
If not Assigned(FObservers) then
|
|
FObservers:=TFPList.Create;
|
|
FObservers:=TFPList.Create;
|
|
- FObservers.Add(AObserver);
|
|
|
|
|
|
+ FObservers.Add(I);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TList.FPODetachObserver(AObserver: TObject);
|
|
procedure TList.FPODetachObserver(AObserver: TObject);
|
|
@@ -679,7 +679,7 @@ begin
|
|
Raise EObserver.CreateFmt(SErrNotObserver,[AObserver.ClassName]);
|
|
Raise EObserver.CreateFmt(SErrNotObserver,[AObserver.ClassName]);
|
|
If Assigned(FObservers) then
|
|
If Assigned(FObservers) then
|
|
begin
|
|
begin
|
|
- FObservers.Remove(AObserver);
|
|
|
|
|
|
+ FObservers.Remove(I);
|
|
If (FObservers.Count=0) then
|
|
If (FObservers.Count=0) then
|
|
FreeAndNil(FObservers);
|
|
FreeAndNil(FObservers);
|
|
end;
|
|
end;
|
|
@@ -689,7 +689,6 @@ procedure TList.FPONotifyObservers(ASender: TObject;
|
|
AOperation: TFPObservedOperation; Data : Pointer);
|
|
AOperation: TFPObservedOperation; Data : Pointer);
|
|
|
|
|
|
Var
|
|
Var
|
|
- O : TObject;
|
|
|
|
I : Integer;
|
|
I : Integer;
|
|
Obs : IFPObserver;
|
|
Obs : IFPObserver;
|
|
|
|
|
|
@@ -697,9 +696,8 @@ begin
|
|
If Assigned(FObservers) then
|
|
If Assigned(FObservers) then
|
|
For I:=FObservers.Count-1 downto 0 do
|
|
For I:=FObservers.Count-1 downto 0 do
|
|
begin
|
|
begin
|
|
- O:=TObject(FObservers[i]);
|
|
|
|
- If O.GetInterface(SGUIDObserver,Obs) then
|
|
|
|
- Obs.FPOObservedChanged(Self,AOperation,Data);
|
|
|
|
|
|
+ Obs:=IFPObserver(FObservers[i]);
|
|
|
|
+ Obs.FPOObservedChanged(ASender,AOperation,Data);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|