Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.671 Beiträge
 
Delphi 11 Alexandria
 
#35

AW: proceduren (Events) aus Interface

  Alt 9. Sep 2016, 11:20
Wieso bindest du an dieser Stelle beide Interfaces ein? Würde es nicht reichen nur ISkinMagneticEx einzubinden? Das Interface ist doch von ISkinMagnetic abgeleitet und kennt somit alle Funktionen? Wo liegt hier der Vorteil bzw. wieso sollte man das so machen?
Beim Cast mit as funktionierte es ohne nicht:
Delphi-Quellcode:
type
  IA = interface
    ['{8F0408FB-9757-45F0-9549-75A2751A7D0C}']
  end;
  IB = interface(IA)
    ['{22475A3F-306B-4F66-9449-A6C0A4873C9E}']
  end;
  TA = class(TInterfacedObject, IB)
  end;

//...

var
  TestA: IA;
  TestB: IB;
begin
  TestB := TA.Create;
  TestA := TestB as IA; // Interface nicht unterstützt
end;
Fügt man IA in der Klasse hinzu, geht es. (Klar könnte man in dem Beispiel direkt zuweisen ohne as.)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat