Einzelnen Beitrag anzeigen

Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#10

Re: Array mit Instanzen von Objekten füllen?

  Alt 6. Mär 2004, 19:02
Ja, hab' ich ja auch schon vor Ewigkeiten geändert. Bin halt ein kleines ungeduldiges Kind.

Das ganze sieht bei mir jetzt folgender Maßen aus:
Als erstes hätten wir da die Klassen (stark vereinfacht).
Delphi-Quellcode:
  TWorld = class
  private
    FWorldArray : array[0..31, 0..31] of TCreature;
    [...]
  public
    constructor Create( [...] );
  [...]
  end;

  // ------------------------------

  TFox = class(TAnimal)
  private
  public
    constructor Create;
  end;
Dann den constructor von TWorld:
Delphi-Quellcode:
constructor TWorld.Create( [...] );
var
  i: Integer;
  j: Integer;
begin
  [...]

  for i := 0 to 31 do
    for j := 0 to 31 do
    begin
      AddCreature(TFox, FWorldArray[i, j]);
    end;
end;
Sowie die Funktion zum "füllen" des Arrays:
Delphi-Quellcode:
procedure TWorld.AddCreature(InstanceClass: TClass; var Reference);
var
  Instance: TObject;
begin
  Instance := TObject(InstanceClass.NewInstance);
  TObject(Reference) := Instance;
  try
    Instance.Create;
  except
    TObject(Reference) := nil;
    raise;
  end;
end;
Mein Problem liegt jetzt darin, wie ich den Konstruktor von TWorld aufrufen muss, so dass das Array komplett mit Instanzen von TFox gefüllt wird.
Delphi-Quellcode:
procedure TFormMain.FormCreate(Sender: TObject);
var
  World: TWorld;
begin
  World := TWorld.Create(10, 10);
  World.Create(10, 10);
  [ ??? ]
end;
Hat jemand eine Idee?
  Mit Zitat antworten Zitat