Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Variable Required
knittel - So 06.03.11 15:13
Titel: Variable Required
Hallo allerseits,
Ich habe ein Problem im Zusammenhand mit pointern und der TObjectList. Denn ich rufe in dem constructor einer Einheit folgendes auf:
Delphi-Quelltext
1: 2: 3: 4:
| constructor TZRessourceUnit.CreateConnect(ConnectedTo, Team, AtX, AtY: cardinal); begin [...] FConnected := @ListOfUnits.Items[ConnectedTo]; |
In ConnectedTo übergebe ich den index des objekts mit dem diese einheit verbunden werden soll. FConnected ist vom Typ ^TGameObject und alle Einheiten in der TObjectList sind TGameObjects. Allerdings gibt Delphi die Fehlermeldung: "Variable Required".
Ich hab den error mal gegoogelt und da heisst es, dass man den @-operator nur auf variablen und nicht auf konstanten wie "1" oder "37" setzen kann. Allerdings ist ja ListOfUnits.Items[ConnectedTo] eine Variable. Ich habe es auch schon mit @ListOfUnits.Last probiert. Er gibt immer die selbe Fehlermeldung.
Danke im voraus;
jaenicke - So 06.03.11 15:49
Items ist eine Eigenschaft. ;-)
knittel - Mo 07.03.11 11:26
Aber wie schaffe ich es dann, dass er auf ein gewisses Objekt einer Objektliste zeigt?
jaenicke - Mo 07.03.11 11:41
Ohne das @. Ein Objekt ist bereits ein Zeiger. Das @ brauchst du, wenn du einen Zeiger auf die Adresse brauchst, an der der Zeiger auf das Objekt liegt...
knittel - Mo 07.03.11 12:03
ja. stimmt. wieso bin ich darauf nicht selbst gekommen?
Danke. :)
---
Moderiert von
Narses: Beiträge zusammengefasst---
jetzt erhalte ich die fehlermeldung:
Inkompatible typen: "Tobject" and "pointer"
jaenicke - Mo 07.03.11 12:21
Dann hast du vergessen beim Typ deiner Variable bzw. deines Felds den Pointeroperator ^ zu entfernen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!