I always thought that within an IF/ELSE/ELSEIF, a local variable defined would stay within the scope of that part of the if/else. At what level does variable scoping occur?
For example:
For Local s:Shape=EachIn Self.HotSpots
If Poly.PointInPoly(mx,my,s.TFormPoly)
If s.State=Shape.State_MouseDown And (Not md1)
' Click Event
Local ev:TMGUIEvent=New TMGUIEvent
ev.Event=ev.Event_Clicked
ev.EventShape=s
ev.EventMount=s.Parent
s.State=Shape.State_MouseHover
TMGUIEvent.Events.AddLast(ev)
ElseIf s.State=Shape.State_MouseHover And md1
' Pressed Event
Local ev:TMGUIEvent=New TMGUIEvent
ev.Event=ev.EVENT_MOUSEDOWN
ev.EventShape=s
ev.EventMount=s.Parent
s.State=Shape.State_MouseDown
TMGUIEvent.Events.AddLast(ev)
ElseIf s.State=Shape.State_Normal
' Mouse Hover Event
Local ev:TMGUIEvent=New TMGUIEvent
ev.Event=ev.Event_MouseOver
ev.EventShape=s
ev.EventMount=s.Parent
s.State=Shape.State_MouseHover
TMGUIEvent.Events.AddLast(ev)
EndIf
' DrawText s.Parent.Name,0,128
Else
If s.State<>Shape.State_Normal
Local ev:TMGUIEvent=New TMGUIEvent
ev.Event=ev.Event_MouseAway
ev.EventShape=s
ev.EventMount=s.Parent
s.State=Shape.State_Normal
TMGUIEvent.Events.AddLast(ev)
EndIf
End If
Next
I get a duplicate identifier error for ev, is that correct?
|