Eigentlich nen triviales Problem. Ich versuche erzeugte Instanzen, Exemplare von nur einemn Objekt zu verwalten. Bei Lazarus habe ich dazu die Klasse TObjectlist. Das Erzeugen der verschiedenen Instanzen sowie das Adden in die Liste läuft.
Mein Problem ist das ich nur die Infos der letzten erzeugten Instanz auslesen kann, obwohl ich nen verschiedenen Index verwende.
Ich wollte als Ergebnis doch nur im Memofeld untereinander Test 1, Test 2, Test 3 stehen sehen, welche ich mit dem Property GetName erhalte
Code: Alles auswählen
procedure TForm1.BitBtn1Click(Sender: TObject);
{------------------------------------------------------------}
{Bilder als Objekte erzeugen, bezeichnen, und in Memofeld auslesen lassen}
{---------Zu Testzwecken wird keine For oder Repeatschleife verwendet----}
begin
//Erzeuge 1. Instanz von Einheit
Einheit.Laden('TestEinheit.bmp'); //BitMap laden
Einheit.SetPos(10,10,37,37); //Pos auf Spielfläche setzn
Einheit.SetName('Test 1'); //Name setzen
EinheitObjListe.Add(Einheit); //In Objektliste adden
Einheit.Zeigen; //auf Spielfeld zeichnen
//Erzeuge 2. Instanz von Einheit
Einheit.Laden('TestEinheit.bmp');
Einheit.SetPos(50,50,37,37);
Einheit.SetName('Test 2');
EinheitObjListe.Add(Einheit);
Einheit.Zeigen;
//Erzeuge 3. Instanz von Einheit
Einheit.Laden('TestEinheit.bmp');
Einheit.SetPos(100,100,37,37);
Einheit.SetName('Test 3');
EinheitObjListe.Add(Einheit);
Einheit.Zeigen;
{------------Ausgabe der Werte--------}
Einheit := EinheitObjliste.Items[0] as TBild; //Mit Laufzeitprüfung
Memo1.Lines.Add(Einheit.GetName);
Einheit := EinheitObjliste.Items[1] as TBild;
Memo1.Lines.Add(Einheit.GetName);
Einheit := EinheitObjliste.Items[2] as TBild;
Memo1.Lines.Add(Einheit.GetName);
end;