Verwendung von Strukturen für Objekte?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Verwendung von Strukturen für Objekte?

Beitrag von NicTheQuick »

Ja, aber wie gesagt musst du das Sternchen weglassen:

Code: Alles auswählen

LineXY(n()\x, n()\y, n()\parent\x, n()\parent\y)
Benutzeravatar
Travis
Beiträge: 35
Registriert: 09.03.2010 19:21

Re: Verwendung von Strukturen für Objekte?

Beitrag von Travis »

thx. Wenn ich aber so direkt auf die Werte des parents zugreifen will, gibt's nen Fehler. Geht erst wenn ich vorher zum parent zurückspringe und dann die Werte abrufe.


Führt zu "Verwendung einer undefinierten Struktur: I."

Code: Alles auswählen

;Debug "Values from parent (last Element)"
;Debug n()\parent\x
;Debug n()\parent\y

So gehts ist aber ziemlich umständlich.

Code: Alles auswählen

ChangeCurrentElement(n(), n()\parent)
Debug "Values from parent (last Element)"
Debug n()\x
Debug n()\y
Debug n()\parent
Oder geht das nicht anders?


(kompletter Code, so geht's)

Code: Alles auswählen

Structure Node
 x.l
 y.l
 *parent
EndStructure

Global NewList n.node()

Procedure NewNode(x,y,*parent.node)
 AddElement(n())
 n()\x = x
 n()\y = y
 n()\parent = *parent
EndProcedure

NewNode(10, 5, 0)
NewNode(20,10,n())

FirstElement(n())
Debug "First Element: "
Debug n()
Debug n()\x
Debug n()\y
Debug n()\parent

LastElement(n())
Debug "Last Element: "
Debug n()
Debug n()\x
Debug n()\y
Debug n()\parent

ChangeCurrentElement(n(), n()\parent)
Debug "Values from parent (last Element)"
Debug n()\x
Debug n()\y
Debug n()\parent
Man kann alles sagen, man muss es nur vernünftig begründen können.
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Verwendung von Strukturen für Objekte?

Beitrag von NicTheQuick »

Deine Struktur war falsch.

Code: Alles auswählen

Structure Node
	x.l
	y.l
	*parent.Node  ;Das .Node ist wichtig!
EndStructure

Global NewList n.node()

Procedure NewNode(x, y, *parent.Node)
	If AddElement(n())
		n()\x = x
		n()\y = y
		n()\parent = *parent
	EndIf
EndProcedure

NewNode(10, 5, 0)
NewNode(20, 10, n())

FirstElement(n())
Debug "First Element: "
Debug n()
Debug n()\x
Debug n()\y
Debug n()\parent

LastElement(n())
Debug "Last Element: "
Debug n()
Debug n()\x
Debug n()\y
Debug n()\parent

Debug "Values from parent (last Element)"
Debug n()\parent
Debug n()\parent\x
Debug n()\parent\y
Debug n()\parent\parent
Benutzeravatar
Travis
Beiträge: 35
Registriert: 09.03.2010 19:21

Re: Verwendung von Strukturen für Objekte?

Beitrag von Travis »

Ah, danke. Ich wusste doch das dass irgendwie gehen muss. Ist schon manchmal verwirrend sowas alles neu zu lernen, besonders, wenn man auch noch BlitzBasic Systax im Kopf hat. :wink: Mit dem Rest sollte ich jetzt alleine klar kommen.
Man kann alles sagen, man muss es nur vernünftig begründen können.
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Antworten