скалогрыз писал(а):Если пользователь не умеет программировать, то это исключительно его проблемы. Занимать память защитой от дурака желания особого не возникает.
Но так работают не типизированные языки. Сплошь защита от дурака.
Просто лишний раз лучше проверить, действительно ли он обращается к существующему объекту, чем надеяться на авось.
скалогрыз писал(а):Третий раз говорю - я предпочту вести список указателей. Я их породил - я за ними прослежу.
Вариант сверхнадёжный и не требует создания инфраструктуры хендлов
Нет, не надежный.
Имеет пользователь в памяти скриптового языка, два экземпляра классов - панель и кнопка.
Пользователь удаляет панель, но так как владельцем кнопки была панель, кнопка тоже удаляется, никак не сообщив об этом скриптовому языку, иначе пришлось бы менять классы LCL, как это сделано в библиотеке для питона.
Ну вот. Имеешь ты список указателей, где панель удалил, а кнопку пропустил и в списке у тебя осталась кнопка, к которой при обращении всё крашнится.
Вот тебе тут и другая, побочная инфраструктура и костыли. Придётся ещё и все дочерние объекты отслеживать, вместо того что бы просто добавить проверку указателя.
Т.е. вместо того чтобы просто добавить проверку указателя, тебе придётся решать побочные проблемы. Хотя всё это решилось бы проверкой указателя.
zub писал(а):Назови мне хоть одну причину по которой мусор лежащий там куда ссылается указатель лежащий в 1235678 не может быть похожим на валидную вмт?
Назвал.
скалогрыз писал(а):Ну не любит человек косвенную адрессацию, ну что ты с ним сделаешь! Список указателей это то что для него сгодиться.
Не в этом дело. Зачем Ящик называть Коробкой, когда Коробка ссылается на не существующий Ящик?
Ситуаций при потере указателя в скриптовом языке - КУЧА. И тебе придётся либо всё это обрабатывать, изобретать всякие списки, проверки, хуки и прочее, либо ПРОСТО добавить "проверку указателя".
Добавлено спустя 7 минут 48 секунд:И для отладки проверка указателя - полезна.
Можно выводить информативные сообщения, где у него в скрипте есть обращение к несуществующему объекту, вместо того что раз и БААМ крашнуть программу, и думай в чём дело.
Добавлено спустя 18 минут 43 секунды:zub писал(а):Эмоции у автора поперли со второго поста. Сдержаней надо быть))
Кстати на счёт эмоций. А то я что-то не очень эмоциональный, пропустил такую провокацию.
Я пришёл как бы на специализированный форум pascal, зашёл в специальный раздел lazarus и спросил, как решить конкретную задачу.
Во втором посте я спросил "И что это?". Это все эмоции?
Почему спросил? Потому что автор сообщения даже не удосужился проверить свою теорию о is.
Далее, другой специалист говорит "никак", просто сразу "никак", даже не думая, не рассуждая. Ну и я должен был сказать такой "ну ладно, спасибо freepascal".
Но я то решал уже подобную задачу, дело то только в подборе хака или спец. функций (которые в результате беседы всё ещё не проявились).
А далее просто обмен теми же эмоциями и попытка мне доказать, что задача про "поезда", мне лучше подойдёт, чем задача про "проверку указателя".
Причем тут поезда? А причем тут список указателей? Мне нужно проверить на что ссылается любой указатель, а не на то, есть ли он в моём списке "почётных указателей"
Зато себе на вопрос я успешно ответил, пытаясь вам объяснить зачем это нужно и доказать что это действительно можно реализовать...
Спасибо мне. Если не найдется ответа с какой либо спец. функцией проверки указателя, то тему можно считать решенной, закрытой, так как был найден не плохой трюк с типами указателей.