Pracuję aktualnie nad programem, który używa dynamicznych tablic obiektów. Jedyne co udało mi się wymysleć to właśnie pętelka (nie zapomnij najpierw ustawić rozmiaru tablicy ;P). Może nie jest to specjalnie elegancki i szybki sposób, ale skuteczny i pewny (o ile w ogóle jest jakikolwiek inny sposób). Jeśli do odpalenia obiektu danej tablicy potrzebujesz wielu instrukcji (np. żeby poustawiać wartości pól, itd.) napisz osobnego konstruktora dla obiektów tej klasy, później wystarczy go odpowiednio wywołać w pętelce. Dzięki temu kod powinien być bardziej czytelny.
Jeszcze jedno: Jeśli chcesz by dynamiczna tablica elementów stanowiła Właściwość klasy, to musisz zdefiniować metody dostępowe do elementów tablicy (Osobna metoda dla odczytu i osobna dla zapisu wartości), nawet jeśli elementami tablicy będą liczby, stringi, czy inne typy proste.
Mały przykładzik:
Kopiuj
TKlasaA = class
private
(...)
public
constructor Create();
(...)
end;
TKlasaB = class
private
FPole = Array of TKlasaA;
function GetPole(Index: Integer): TKlasaA;
procedure SetPole(Index: Integer; Value: TKlasaA);
public
constructor Create();
property KlasaA[Index: Integer]: TKlasaA read GetPole write SetPole;
end;
constructor TKlasaA.Create();
begin
inherited Create;
(...)
end;
constructor TKlasaB.Create();
var
K: Integer;
begin
inherited Create;
For K:= 0 to RozmiarTablicy do FPole[K]:= TKlasaA.Create();
(...)
end;