Type a
Field d
End Type
For i=1 To 10
n.a=New a
n\d=Rnd(10)
void=Handle(n.a)
Next
Print "========="
n.a=First a
Print Handle(n.a)
n.a=Last a
Print Handle(n.a)
WaitKey
запустите, все нормально, как легко предположить после ===== выведет 1,10.
теперь закоментим строку void=Handle(n.a). F5.
ОПА. 1, 2.
Вывод: экземпляр списка получает handle в момент вызова этой функции, а вовсе не в момент создания нового экземпляра.
Мораль: когда надо "пронумеровать" все элементы списка неплохо было бы проводить фиктивный вызов этой функции, чтобы потом проблем небыло.
Примите к сведению.