Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Berechnungsergebnise verschiedener Klassen zusammenführen

  Alt 24. Apr 2018, 12:44
Ich hatte einen ähnlichen Gedanken:
Delphi-Quellcode:
uses ..., System.Generics.Collections;

type
  TBase = class
  strict private
    FAnzahl: integer;
    class var FInstances: TObjectList<TBase>;
    class constructor Create;
    class destructor Destroy;
    class function GetTotal: integer; static;
  public
    constructor Create; virtual;
    destructor Destroy; override;
    property Anzahl: integer read FAnzahl write FAnzahl;
    class property Total: integer read GetTotal;
  end;

  TEins = class(TBase)

  end;

  TZwei = class(TBase)

  end;

...


class constructor TBase.Create;
begin
  FInstances := TObjectList<TBase>.Create(false);
end;

constructor TBase.Create;
begin
  inherited Create;
  FInstances.Add(self);
end;

destructor TBase.Destroy;
var
  idx: integer;
begin
  idx := FInstances.IndexOf(self);
  if idx > -1 then
     FInstances.Delete(idx);
  inherited;
end;

class destructor TBase.Destroy;
begin
  FInstances.Free;
end;

class function TBase.GetTotal: integer;
var
  lBase: TBase;
begin
  Result := 0;
  for lBase in FInstances do
    inc(Result, lBase.Anzahl);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat