Einzelnen Beitrag anzeigen

gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#1

Object dynamisch in einem Array erzeufen

  Alt 11. Okt 2010, 20:48
Hey,
ich möchte gerne Shapes dynamisch erzeugen.
Dafür habe ich mir gedacht ich mach das in einem Array.
Ich mach das aber in einer zweiten Unit (um das schön objectorientiert zu machen ..).
Ich hab das wie folgt umgesetzt ABER trotzdem haben nach dem erzeugen alle Einträge in meinem Array den wert "Nil" und wenn ich damit weiter arbeiten möchte bekomme ich fehlermeldungne (weil ja nichts da ist zum drauf zugreifen .. )
könnt ihr mir sagen woran es liegt ?

Delphi-Quellcode:
procedure TVerw.Add_Ufo(Starty,StartX,Geschwin : integer;
                        Sender :TComponent; Unterlage : TWinControl);
begin
  SetLength(Ufo_Arr,Length(Ufo_Arr) + 1 );
  Ufo_Arr[Length(Ufo_Arr)] := TUfo.Create(StartX,StartY,Geschwin,Sender);
  Ufo_Arr[Length(Ufo_Arr)].Parent := Unterlage; // => das Form auf dem es Dargestellt werden soll
  Ufo_Arr[Length(Ufo_Arr)].Name := 'Ufo' + IntToStr(Length(Ufo_Arr)) ;
  Ufo_Arr[Length(Ufo_Arr)].Shape :=stCircle;
  Ufo_Arr[Length(Ufo_Arr)].Brush.Color := ClBlue ;
  Ufo_Arr[Length(Ufo_Arr)].Width := Ufo_Breite ;
  Ufo_Arr[Length(Ufo_Arr)].Height := Ufo_hoehe ;
  Ufo_Arr[Length(Ufo_Arr)].Show;

end;
außerdem habe ich die Create Routine ein wenig verändert, aber ich denke nicht, dass es daran liegt ..
nur zur sicherheit hier die veränderte Create Routine :
Delphi-Quellcode:
 
// Tufo ist vom Type TShape

 constructor TUfo.Create(StartKoX, StartKoY, Geschwindigkeit: integer; Owner : TComponent );
  begin
  inherited Create(Owner) ;
    Left := StartKoX ;
    Top := StartKoY ;
    Rich_Arr[1] := Geschwindigkeit ;
    Rich_Arr[2] := 0 ;
    Muenze := false ;
  end;

Geändert von gangs-taas (11. Okt 2010 um 20:51 Uhr)
  Mit Zitat antworten Zitat