Показать сообщение отдельно
Старый 29.03.2007, 03:49   #1
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Посчет handle

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 в момент вызова этой функции, а вовсе не в момент создания нового экземпляра.
Мораль: когда надо "пронумеровать" все элементы списка неплохо было бы проводить фиктивный вызов этой функции, чтобы потом проблем небыло.
Примите к сведению.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (12.02.2009)