Решение проблемы со указателями в дереве для сохранения данных в базуDelphi , Синтаксис , ДеревьяЗаголовок: Решение проблемы со указателями в дереве VirtualStringTree для сохранения данных в базу Вопрос: При использовании TVirtualStringTree для хранения указателей на записи, при получении данных из узла в обработчике OnNewText возвращается указатель с другим адресом, чем тот, который был сохранен в дереве. Это проблема, так как для сохранения измененных данных в базу требуется ссылаться на оригинальную запись. Ответ: Проблема заключается в том, что вы не сохраняете указатель на данные в узле дерева, а вместо этого выделяете новую запись TTherapData для каждого узла. Чтобы решить эту проблему, вам нужно использовать дополнительную запись, которая содержит указатель на данные, и использовать эту запись в качестве данных узла. Пример кода на Object Pascal (Delphi):
Примечание: Не забудьте освободить память, выделенную для managed типов, таких как строки или интерфейсы, в пользовательских данных узла, если это необходимо. В вашем случае есть только один указатель на поле, которое не требует никакой финализации (при условии, что вы освобождаете память, выделенную для записей PTherapData, когда освобождаете FTherapDataList). Вопрос связан с проблемой сохранения данных в базе при использовании TVirtualStringTree для хранения указателей на записи, где указатель на данные в узле дерева возвращается с другим адресом, чем тот, который был сохранен в дереве, что затрудняет сохранен Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |