Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
Delphi/Lazarus: Mehrere Objekte mit einem Namen anspechen?
Ich versuche grade ein kleines Spiel in Lazarus(Pascal) zu programmieren.
Dafür habe ich eine kleine Kollisionsabfrage programmiert( Wenn die Spielfigur ein Hindernis berührt).
Da es sich bei den Hindernissen um 13 Image Objekte handelt müsste ich also auch dementsprechend ziemlich viel Quelltext vollschreiben.
Daher ist meine Frage, ob es irgendwie möglich ist die Objekte Image1-13 durch eine Bezeichnung (z.B. ImageX) alle gleichzeitig anzusprechen.
Ist das möglich? Wenn ja, wie und wo kann ich das festlegen?
2 Antworten
- 🐟 Fish 🐟Lv 7vor 8 JahrenBeste Antwort
Erst mal solltest du eine basisklasse bilden und davon die verschiedenen Objekte ableiten.
So einen Zugriff macht man, wenn er sauber programmiert ist entweder über einen Itterstor oder über eine enum Funktion. Ich bevorzuge die Enumfunktion mit einer callback als Parameter. Ner der callback handelt es sich im einen Funktionszeiger. Dur rufst also in der enum eine Schleife über alle Elemente einer liste oder eines Arrays. Dann rufst du mit jedem Element der liste die callback auf.
Dieses Konstrukt hat den Vorteil das du nur für ein Element eine Funktion scheibst und diese mit der enum sofort für alle aufrufen kannst.
Hier die Delphi Elemente
http://www.michael-puff.de/Programmierung/Artikel/...
http://www.delphi-treff.de/tutorials/vcl/tobjectli...
http://www.delphi-treff.de/tipps/object-pascal/arr...
In der Anwendung kannst du dann jede Aktion über die enum laufen lassen
EnumObjekte(liste, pruefeKollision)
EnumObjekte(liste, bewegeObjekt)
EnumObjekte(liste, vernichteSchwaechsten)
Usw
Der zweite Parameter ist dabei die Callbackmethode.