Как проверить существует ли объект, без перебора, потому что если попытатся получить доступ к какому либо значению удаленного объекта, то вылетает мемори аксесс волатион.
Type test
Field rrr
Field hendl
End Type
ptr.test=New test
ptr\rrr=1
ptr\hendl=Handle ptr
ptr.test=New test
ptr\rrr=1
ptr\hendl=Handle ptr
ptr.test=New test
ptr\rrr=1
ptr\hendl=Handle ptr
ptr.test=New test
ptr\rrr=1
ptr\hendl=Handle ptr
For p.test = Each test
If p\hendl=3 Delete p;----Удаляем 3-й объект.
Next
ptr\hendl=Handle ptr
ptr.test=New test
ptr\rrr=1
ptr\hendl=Handle ptr
new_ptr.test=Object.test(3);-----Выбираем объект для действия.
new_ptr\rrr=200;-----------------Меняем значение поля "rrr" и получаем МАВ.
For p.test = Each test
Print p\rrr
Print p\hendl
Print Handle p
Next
WaitKey
----------------------------------------------------------------
П.с. Под утро меня озарило, проверить будет ли МАВ если попробовать узнать хендл несуществующего объекта, МАВ не выдало, а хендл был равен нулю (нумерация в типах начинается с 1-ци, так что все ок).
Вместо:
new_ptr.test=Object.test(3)
new_ptr\rrr=200
Надо использовать:
new_ptr.test=Object.test(3)
If Handle new_ptr <>0;---или If (Handle new_ptr), на ваше усмотрение.
new_ptr\rrr=200
EndIf