Types&Listen - Wie lösche ich ein Objekt?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

N0X

Betreff: Types&Listen - Wie lösche ich ein Objekt?

BeitragFr, Jul 16, 2010 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey!
Ich arbeite momentan an einem Login&Logout System.
Login klappt soweit, doch das ausloggen noch nicht, da ich nicht weiß wie man ein existierendes Objekt aus einer Liste und aus dem Type löscht!

Hier mal ein bisschen Code:
Code: [AUSKLAPPEN]
Type player
   Field name$,pass$
   Field x#,y#,z#
   Field ip,port
   Global list:TList = New TList
   
   Method New()
      list.addLast(Self)
   EndMethod
   Method Delete:player()
      list.Remove(Self)
   EndMethod
End Type

...

For Local r:player = EachIn player.list
   If ip = r.ip And port = r.port Then
      Print "Client logged out ("+r.name$+","+r.pass$+")"
      'Was muss hier stehen damit das Objekt gelöscht wird?
   EndIf
Next


Was muss ich an der entsprechenden Stelle stehen haben?

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%
 

Macintosh

BeitragFr, Jul 16, 2010 0:28
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]

Type player
Field name$,pass$
Field x#,y#,z#
Field ip,port
Global list:TList = New TList

Method New()
list.addLast(Self)
EndMethod
Method Delete:player() 'Warum gibt das nen Player zurück?? das ist falsch. -> Method Delete()
list.Remove(Self)
EndMethod
End Type

...

For Local r:player = EachIn player.list
If ip = r.ip And port = r.port Then
Print "Client logged out ("+r.name$+","+r.pass$+")"
'Was muss hier stehen damit das Objekt gelöscht wird?
'Das da \/
r.Delete()
EndIf
Next


So :)

FireballFlame

BeitragFr, Jul 16, 2010 1:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht so nicht.
Delete ist eine Methode, die automatisch aufgerufen wird, wenn das Objekt vom Garbage Collector gelöscht wird. Wenn du eine "Löschmethode" machen willst, musst du die anders nennen.
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

BtbN

BeitragFr, Jul 16, 2010 9:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Speichere beim Eintragen in die liste den zurückgegebenen Link mit, und ruf dessen Remove Methode auf, wenn du das objekt aus der Liste entfernen willst.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group