On Monday 19 May 2008 00.02:55 Marc Santhoff wrote: > Am Sonntag, den 18.05.2008, 23:41 +0200 schrieb Graeme Geldenhuys: > > 2008/5/18 Marc Santhoff <[EMAIL PROTECTED]>: > > > Since the compiler dod not warn about using the "as" operator I assume > > > it is safe? Like this: > > > > > > procedure TObservable.DeRegister( obsv: IObserver ); > > > var > > > i: integer; > > > begin > > > if (fObservers.count<=0) then exit; > > > for i:=0 to fObservers.count-1 do begin > > > if ((fObservers[i] as IObserver)=obsv) then begin > > > > I'm not a big Interfaces expert, but as for as I know using 'as' like > > that with Interfaces actually translates to a QueryInterface() call > > internally, which is why it is allowed. I vaguely remember as issue > > between CORBA and COM interfaces and the 'as' call, because CORBA > > interfaces do not have a QueryInterface() implementation. Well, > > something like that... :-) > > Okay, so there are still some unknowns. > TObject.GetInterface does not work with corba style interfaces: http://bugs.freepascal.org/view.php?id=5800 http://bugs.freepascal.org/view.php?id=6798 http://bugs.freepascal.org/view.php?id=6036
For a workaround use "getcorbainterface" in lib/common/kernel/mseclasses.pas from MSEide+MSEgui: http://sourceforge.net/projects/mseide-msegui/ Martin _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal