ich erzeuge eine Anzahl aehnlicher Objekte (Zahl von vornherein unbekannt), die alle von einer gemeinsamen abstrakten Klasse abgeleitet sind:
Code: Alles auswählen
type
TAbstractElement = class(TObject)
procedure DoSomething; virtual; abstract;
end;
TAlphaElement = class(TAbstractElement)
procedure DoSomething; override;
...
end;
TBetaElement = class(TAbstractElement)
procedure DoSomething; override;
...
end;
var
Elements: array of TAbstractElement;
// ...
SetLength(Elements, 1);
Elements[0] := TAlphaElement.Create;
TAlphaElement(Elements[0]).x := ...;
TAlphaElement(Elements[0]).y := ...;
SetLength(Elements, 2);
Elements[1] := TAlphaElement.Create;
TAlphaElement(Elements[1]).x := ...;
TAlphaElement(Elements[1]).y := ...;
SetLength(Elements, 3);
Elements[2] := TBetaElement.Create;
TBetaElement(Elements[2]).a := ...;
TBetaElement(Elements[2]).b := ...;
// ...
for i := Low(Elements) to High(Elements) do
Elements.DoSomething;
Dankeschoen!