Hi Anthony,

On 2015-11-28 00:16, Anthony Walter wrote:
> type
>   IBarkable = interface(IInterface)
>   ['{B241068F-2ED9-43C7-066B-778B94CB58F9}']
>     procedure Bark;
>   end;
> ...snip...

That is a much better solution for what Luciano wants to accomplish.


> and later ...
> 
> if Animal is IBarkable then (Animal as IBarkable).Bark;

This is not good usage of Interfaces. Use the interface variable instead.

var
  intf: IBarkable
begin
  if Supports(Animal, IBarbable, intf) then
  begin
    intf.Bark;
    // you can continue here using intf further without casting
  end;



Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to