Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Interface-Vererbung einer privaten Klasse

  Alt 30. Jan 2012, 15:10
Vererbung von Interfaces ist immer mit Vorsicht zu geniessen.
Aber man kann ja mehrere Interfaces pro Klasse implementieren:
Delphi-Quellcode:
  IFoo = interface(IInterface)
  ['{90CA22A8-ACC3-4EF8-8E41-3C1B7EF755E3}']
    procedure Foo; stdcall;
  end;

  IBar = interface(IInterface)
  ['{ABCDF8A2-646E-48A7-8B80-DAAE3244281B}']
    procedure Bar; stdcall;
  end;

type
  TFoo = class(TInterfacedObject, IFoo, IBar)
  protected
    procedure Foo; stdcall;
    procedure Bar; stdcall;
  end;


var
  x : IFoo;
  b : IBar;
begin
  x := TFoo.Create();
  x.Foo;

  b := x as IBar; // bei älterem Delphi muss hier die Supports-Funktion verwendet werden
  b.Bar;
Andreas
  Mit Zitat antworten Zitat