I'm having trouble with the TLink type.
BlitzMax Forums/BlitzMax Beginners Area/I'm having trouble with the TLink type.| 
 | ||
| I'm trying to get the first object from the list without using the for...eachin loop but I'm having trouble because it can't convert from object to type Image. Local current:TLink = ImageList.FirstLink() Local myImage:Image = Image(current._value) Image is an object so it should work. 
Global ImageList:TList = New TList
Type Image
        Global ImageListCount:Int =0
        Field xpos,ypos:Int
        Field _image:TImage 
	Field AlphaLevel:Float 
	Field Scale:Float 
        'instantiate and each object to List
        Function Create:Image(strPath:String,startXpos:Int,startYpos:Int,imgAlpha:Float,imgScale:Float)
               Local img:Image = New Image
               img._image = LoadImage(strPath)
               ImageListCount:+1
               img.xpos = startXpos
               img.ypos = startYpos
	       img.AlphaLevel = imgAlpha
	       img.Scale = imgScale
               ListAddLast ImageList, img 
        End Function 
	Method Render()
		Local current:TLink = ImageList.FirstLink()
		Local myImage:Image = Image(current._value)
				
		MidHandleImage myImage._image
		SetScale Scale,Scale
		SetAlpha AlphaLevel
		DrawImage myImage._image, (myImage.xpos), myImage.ypos
		Update(myImage)	
	End Method
End Type
 | 
| 
 | ||
| Try: Local myImage:Image = Image(ImageList.First()) Can't imagine why your code wouldn't work in the first place though. | 
| 
 | ||
| TLink is a [silly] name for it in teh first place.  Should be node.  Ahwell. Noel is correct. Tubad the docs only cover functions and not methods. | 
| 
 | ||
| Didn't work. I get an 'Illegal operation on empty list'. 
Strict
Graphics 800,600,0,20
Global ImageList:TList = New TList
Local block:Image = New Image
'loading path to graphics
'and create objects
Function LoadPieces()
	Local gh = GraphicsHeight() / 2
	Local gw = GraphicsWidth() / 2
	'string array
	Local arrPath:String[]=["gfx/blue.bmp","gfx/green.bmp","gfx/yellow.bmp","gfx/red.bmp","gfx/orange.bmp","gfx/violet.bmp"]
	For Local i:String = EachIn arrPath
		Image.Create(i,gw,gh,1.0,1.0)
	Next
End Function
 
Type Image
        Global ImageListCount:Int =0
        Field xpos,ypos:Int
        Field _image:TImage 
	Field AlphaLevel:Float 
	Field Scale:Float 
             'instantiate and each object to List
            Function Create:Image(strPath:String,startXpos:Int,startYpos:Int,imgAlpha:Float,imgScale:Float)
                        Local img:Image = New Image
                        img._image = LoadImage(strPath)
                        ImageListCount:+1
                        img.xpos = startXpos
                        img.ypos = startYpos
			img.AlphaLevel = imgAlpha
			img.Scale = imgScale
                        ListAddLast ImageList, img 
            End Function 
	
	'go thru each object, scale it and fade object
            Method Update(img:Image)
		Scale:+1.0
		AlphaLevel:-0.1  
		If Scale >= 15.0 Then
			ListRemove ImageList, img
			Scale=1.0
			AlphaLevel=1.0
		EndIf		
            End Method
	   Method Render()
		SetBlend ALPHABLEND
                        'For Local i:Image = EachIn ImageList
				'Local current:TLink = ImageList.FirstLink()
				'Local myImage:Image = Image(current._value)
				Print "debug"
				Local myImage:Image = Image(ImageList.First())
				Print "1"
				
				'MidHandleImage i._image
				MidHandleImage myImage._image
				SetScale Scale,Scale
				SetAlpha AlphaLevel
				'DrawImage i._image, (i.xpos), i.ypos
				DrawImage myImage._image, (myImage.xpos), myImage.ypos
				'Update(i)
				Update(myImage)
				'Exit
                        'Next	
	   End Method
	
	   Method Reset()
		      If ListIsEmpty(ImageList) = True  Then
		   		LoadPieces()			
	   	      EndIf	
	   End Method
End Type
'main
While Not KeyHit(KEY_ESCAPE)
	Cls	
	block.render()	
  
	'check to see if all objects are destroy; if so start over
	block.reset()
	Flip()
	FlushMem()
Wend
'destroy i or blitz takes care of this for me when
'the program ends
block=Null
 | 
| 
 | ||
| Got it to work. Forgot to call the loadpieces function. |