Types confuse me in MAX

BlitzMax Forums/BlitzMax Beginners Area/Types confuse me in MAX

Can someone tell me why I get Identifyer "udate" not found in this??


Global g_radio = LoadAnimImage("gfx\gui\radio.bmp",8,8,0,2,MASKEDIMAGE) 'Graphics for the radio.


Type radio

	Const s_radio = 1 'Tells the state field that the radio is selected
	Const u_radio = 0 'Tells the stste field that the radio is unselected
	Global rlst:TList 'List (sure you knew that)
	Global t_radio 'This counts the total # of radios being used.

	Field id 'This is the ID or # of the return in the function
	Field state 'Current state of the button
	Field x,y 'x,y location of the radio button
	
	Function Create(x,y) 'Create function making the button.
		If rlst = Null Then rlst = CreateList()
		r:radio = New radio
		ListAddLast(rlst,r)
		id = t_radio + 1
		state = u_radio
		x = x
		y = y
		Return id	
	End Function
	
	Method Update() 'Method for drawing the radio button
		DrawImage g_radio,x,y,state
	End Method
	
End Type

Function CreateGUI()
	radio.Create(x,y)
End Function

r.update()



Simply put, there is no definition for r globally

Here (since I wasn't exactly sure what all the field were for and what not, I optimized it a bit based on your general code):
Global R:Radio
Type Radio
	Const S_Radio:int=1
	Const U_Radio:int=0
	
	Global RLST:TList
	Global T_Radio:int
	Global G_Radio:TImage
	
	Field ID:Int
	Field State:Int
	Field X:int,Y:Int
	
	Method Update()
	     If G_Radio <> null then DrawImage(g_radio,x,y,state)
	End Method

	Function Create:Radio(X1:int,Y1:int)
        	Local R:Radio
		if RLST = null then RLST = createlist()
		R = New Radio
		State = U_Radio
		ID = T_Radio+1
		X=X1
		Y=Y1
		Return R
	End Function
End Type

Function CreateGUI()
	R = Radio.Create(5,5)
End Function

R.Update()


Im not sure what you have above now, but I added comments to the code in the top of this post

Alright, well here is why update returns an error.

The object 'r' in your "r.Update()" isn't defined anywhere. Sure you have r:radio in the function create which is assosiated with the type radio (mind you, since you haven't defined R as global to the program, this is merely local to the function create of the type radio), however 'r' from 'r.update()' hasn't been defined as a radio object (globally).

AT the top of your code (Very top), put in this
"Global R:Radio"

See if that helps.

yep that fixed it thanks

Sorry I figured it out...