Thema: Hilfklasse

Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#7

AW: Hilfklasse

  Alt 25. Mai 2022, 17:04
Wenn die Getter schon passend in TMonster vorhanden sind, dann kannst du es ja auch mal so versuchen:
Delphi-Quellcode:
type
  TTyp = (Kreis, Quadrat);

type
  IElement = interface
    function GetFarbe: TColor;
    function GetGroesse: Double;
    function GetTyp: TTyp;
    property Typ: TTyp read GetTyp;
    property Farbe: TColor read GetFarbe;
    property Groesse: Double read GetGroesse;
  end;

  IReferenz = interface(IElement)
  end;

  IMonster = interface
    function GetElement: IElement;
    function GetReferenz: IReferenz;
    property Element: IElement read GetElement;
    property Referenz: IReferenz read GetReferenz;
  end;

type
  TMonster = class(TInterfacedObject, IMonster, IElement, IReferenz)
    function IElement.GetFarbe = GetElementFarbe;
    function IElement.GetGroesse = GetElementGroesse;
    function IElement.GetTyp = GetElementTyp;
    function IReferenz.GetFarbe = GetReferenzFarbe;
    function IReferenz.GetGroesse = GetReferenzGroesse;
    function IReferenz.GetTyp = GetReferenzTyp;
  private
    function GetElement: IElement;
    function GetReferenz: IReferenz;
    function GetElementFarbe: TColor;
    function GetElementGroesse: Double;
    function GetElementTyp: TTyp;
    function GetReferenzFarbe: TColor;
    function GetReferenzGroesse: Double;
    function GetReferenzTyp: TTyp;
  end;

{ TMonster }

function TMonster.GetElement: IElement;
begin
  Result := Self as IElement;
end;

function TMonster.GetReferenz: IReferenz;
begin
  Result := Self as IReferenz;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat