Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Berechnungsergebnise verschiedener Klassen zusammenführen
24. Apr 2018, 13: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
|