"Zeiger" auf Type-Object zurückgeben
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
HubsiBetreff: "Zeiger" auf Type-Object zurückgeben |
So, Okt 16, 2016 14:19 Antworten mit Zitat |
|
---|---|---|
Ich weiß nicht recht wie ich mein Problem beschreiben soll. Vielleicht erstmal den Code mit dem ich das versucht habe:
BlitzMax: [AUSKLAPPEN] Global playerlist:TList = CreateList() Der Compiler steigt mir bei dem DrawText mit der Meldung 'Indentifier x not found' aus. Heißt rival kann nicht für die playerlist verwendet werden? Oder kann man überhaupt verstehen was ich erreichen will? |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
ThunderBetreff: Re: "Zeiger" auf Type-Object zurückgeben |
So, Okt 16, 2016 14:38 Antworten mit Zitat |
|
---|---|---|
Du musst das Object zum Typen casten, den es wirklich hat. Object hat nämlich keine Instanzvariable namens x.
also am besten: BlitzMax: [AUSKLAPPEN]
Falls das Object, das du zu casten versuchst, nicht von dem Typ ist, wird Null zurückgegeben. Wenn du aber weißt, dass in der Liste nur Instanzen vom Typ TPlayer (oder davon abgeleiteten Klassen) sind, dann kannst du das ignorieren |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Hubsi |
So, Okt 16, 2016 15:23 Antworten mit Zitat |
|
---|---|---|
Du bist meine Rettung, tausend Dank Jetzt tun sich ganz neue Bugs auf | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
FireballFlameBetreff: Re: "Zeiger" auf Type-Object zurückgeben |
So, Okt 16, 2016 15:28 Antworten mit Zitat |
|
---|---|---|
Thunder hat Folgendes geschrieben: Falls das Object, das du zu casten versuchst, nicht von dem Typ ist, wird Null zurückgegeben. Wenn du aber weißt, dass in der Liste nur Instanzen vom Typ TPlayer (oder davon abgeleiteten Klassen) sind, dann kannst du das ignorieren
Ist in diesem Fall irrelevant, da der zurückgegebene Wert der Funktion mit in einer "For Local p:Tplayer = EachIn playerlist"-Schleife gesetzt wird. ForEach-Schleifen durchwanderen eh nur Objekte des im Zähler angegebenen Typs (alle anderen werden übersprungen) und der Wert der FindRival-Funktion kommt in der Schleife durch ein "r = p" zustande. Es wäre hier also sinnvoller, r und den Rückgabewert der Funktion gleich als Tplayer zu deklarieren, dann kann ist auch kein Cast beim Aufruf nötig. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
ThunderBetreff: Re: "Zeiger" auf Type-Object zurückgeben |
So, Okt 16, 2016 18:12 Antworten mit Zitat |
|
---|---|---|
FireballFlame hat Folgendes geschrieben: Ist in diesem Fall irrelevant, da der zurückgegebene Wert der Funktion mit in einer "For Local p:Tplayer = EachIn playerlist"-Schleife gesetzt wird.
Ich habe mich auch nicht auf die Schleife bezogen, sondern auf die Zuweisung zur Variable 'rival'. Außerdem wollte ich zusätzliche Informationen liefern, die wichtig sein können, und ich habe darauf hingewiesen, dass das Prüfen auf Null unter bestimmten bedingungen s.o. nicht nötig ist. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group