[DUG] Interfaces

Myles Penlington myles at ams.co.nz
Thu Aug 7 14:56:18 NZST 2008


Should work as is by the looks of it.
Could also try 

If supports( res, IAuctionable, Auctionable ) then ...

I would debug/step into the QueryInterface method and then check the
actual classname of the object you are dealing with to see if it is
actually TXMLResidentialType.

You could always also implement IInterface/IUnknown and provide another
version of QueryInterface (which I have done on many an instance). 

Interfaces ... lots of fun!

Myles. 

-----Original Message-----
From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz]
On Behalf Of Alister Christie
Sent: Thursday, 7 August 2008 2:47 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Interfaces

I'm having some fun with interfaces

I have two interfaces IXMLResidentialType and IAuctionable.
I have a class which implements these two interfaces
TXMLResidentialType = class(TXMLNode, IXMLResidentialType, IAuctionable)

...

I have some code
var
  Res : IXMLResidentialType;
  Auctionable : IAuctionable;
begin
...
  if Res.QueryInterface(IAuctionable, Auctionable) = 0 then
    ShowMessage('Auctionable');

What I'm trying to determine is if Res implements IAuctionable - which 
it does (through TXMLResidentialType which effective Res is an instance 
of), however IXMLResidentialType doesn't seem to realise this.  How do I

make this work?

Does this question make any sense?

If I'm not able to do this it's not too much of a problem, but will mean

a bunch of duplicated code.


-- 
Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 

_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi at delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
unsubscribe

Attention:
This communication is confidential and may be legally privileged.  If you are not the intended recipient, please do not use, disclose, copy or distribute it, other than to return it to us with your confirmation that it has been deleted from your system.



More information about the Delphi mailing list