Ich versuche gerade mich ein wenig in
OOP zu üben, wozu ich ein kleines Strategiespielchen schreiben wollte. Momentan steh ich vor einem allgemeinen Problem, was den Aufbau des Objektmodells betrifft...
Es gibt Einheiten und Ressourcen auf der Karte, die ich beide jeweils als Klassen definitiert habe, TEinheit und TRessource. Diese sind direkt von TObject abgeleitet, haben also nichts miteinander zu tun.
Ich möchte nun, dass, je nachdem, was der Benutzer gerade angeklickt hat (z.b. eine Einheit), im Infofenster Informationen über dieses etwas stehn. Wenn es eine Einheit ist halt die Werte der Einheit, bei einer Ressource (die man ja auch anklicken können soll) eben wieviel sich noch in diesem Ressourcenfeld befindet.
Die Auswahl habe ich nun in einer TList organisiert, da man bei Einheiten ja durchaus auch mehrere gleichzeitig selektieren kann.
Ich habe also die Pointer auf die Objekte, die gerade markiert sind. Bisher habe ich (als ich nur die Einheiten implementiert hatte) dann so darauf zugegriffen: TEinheit(Liste.Items[i])
Aber es könnte ja auch eine Ressource sein, also gibt es irgendwie eine Möglichkeit, herauszufinden, ob das jeweilige Objekt, auf das der Pointer zeigt, nun vom Typ TEinheit oder TRessource ist?
Oder hat jemand einen Tipp, wie ich das ganze geschickter lösen kann? Natürlich könnte ich verschiedene Listen führen, je nachdem, was gerade für Items selektiert sind.. aber das wäre doch irgendwo unschön und umständlich oder?
Mit
OOP Sachen habe ich leider noch nicht so die Erfahrungen, deswegen ist mir völlig fremd, wie man hier am besten vorgeht.