Type Callback functions
BlitzMax Forums/BlitzMax Programming/Type Callback functions| 
 | ||
| Oh man, i hoped to solve this all myself but i need help again. Ill keep it short. 
Local client:TClient = New TClient
client.SetPlayerName("Patrick") 
client.Connect("127.0.0.1", 1234) 
client.OnConnect = blah
Function blah() 
	While Not KeyHit(KEY_ESCAPE) 
		DrawText "Connected!", 10, 10
		Delay(100) 
		Flip
	Wend
End Function
Type TClient Extends TPacket
	Field name:String
	
	'Callback
	Field OnConnect() 
	Field OnConnectFail() 
	Method SetPlayerName(name:String) 
		Self.name = name
		'if is connected, send new name
	End Method
	
	Method Connect(host:String, port:Int, timeout:Int = 30) 
		Self.host = host
		Self.port = port
		Self.tcpsock = CreateTCPSocket() 
		If ConnectSocket(Self.tcpsock, HostIp(Self.host), Self.port) 
			'Self.tcpstream = CreateSocketStream(tcpsock) 
			If Self.OnConnect Self.OnConnect() 
		Else
			If Self.OnConnectFail Self.OnConnectFail() 
		End If
	End MethodWhy isnt this working? I get a "Unhandled excepton:: Call to uninitialized function pointer." error... If i call it. And if i check it for being set, it returns a false. It looks as if "client.OnConnect = blah" does have any effect at all. | 
| 
 | ||
| Because you're calling in the wrong order. client.OnConnect = blah client.Connect("127.0.0.1", 1234) Will work! | 
| 
 | ||
| LOL! Thanks >_> | 
| 
 | ||
| Oh man, it works now. This is hot. I love BlitzMax. I hope to finish my client module soon :) BlitzMax is so easy. Im amazed! |