1 / 1 / 0
Регистрация: 18.03.2014
Сообщений: 95

Сохранение созданного объекта в TList

02.02.2026, 15:59. Показов 1577. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой рабочий код на Делфи:
Delphi
1
CONST CVList : TList = NIL;
Далее в другом юните создается объект CV, проверяется
Delphi
1
2
3
4
if not Assigned(CVList) then          
    CVList := TList.Create;        
    
CVList.Add(TObject(CV));

Попытался переписать на с++builder:

C++
1
const TList *CVList = NULL;
Создаю объект CV, далее хочу записать его в TList

C++
1
2
3
4
if (CVList == NULL)                                  
    TList *CVList = new TList();                                
 
CVList->Add((TObject*)(CV));
Почему то не работает?
Пожалуйста поясните в чем ошибка?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2026, 15:59
Ответы с готовыми решениями:

Списки указателей TList
Здравсвуйте программисты! Подскажите пожалуйста,в чём проблемма в этом коде, начал изучать тему по...

Извлечение данных из TList
Доброго времени суток. Есть проблема: Имеется набор данных (DataSet), из которого нужно получить...

Передача TList по сокету
Здравствуйте. У меня вопрос, можно более грамотно передать данные с TList с помощью сокетов?...

25
Злостный нарушитель
 Аватар для Verevkin
10893 / 5829 / 1288
Регистрация: 12.03.2015
Сообщений: 26,896
02.02.2026, 19:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Dinkin Посмотреть сообщение
У меня мечта была, найти просто способ, проверять на активен ли еще указатель)
Что такое "активный указатель"?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,184
Записей в блоге: 3
02.02.2026, 19:52
Цитата Сообщение от Verevkin Посмотреть сообщение
Что такое "активный указатель"?
Ну это как то так, проверка существует ли то на что он указывает:

C++
1
2
3
4
5
6
7
8
9
10
    TStringList *lst;
 
    if(!lst)
        lst = new TStringList;
 
    delete lst;
    // lst = NULL; // без этого
 
    if(lst)
        ShowMessage("Он к сожалению еще тут");
0
Злостный нарушитель
 Аватар для Verevkin
10893 / 5829 / 1288
Регистрация: 12.03.2015
Сообщений: 26,896
02.02.2026, 19:55
Цитата Сообщение от Dinkin Посмотреть сообщение
Ну это как то так, проверка существует ли то на что он указывает
Нет такого способа.
Если тебе понадобилось это знать, то у меня для тебя плохие новости.
Цитата Сообщение от Dinkin Посмотреть сообщение
C++
1
2
delete lst;
 // lst = NULL; // без этого
В delphi есть FreeAndNil(). Я им пользуюсь для обнуления ГЛОБАЛЬНЫХ указателей.
А если это глобальный объект, то обнуление его глобального указателя я делаю прям в деструкторе. В 99% случаев - это формы (потомки TForm).
0
1 / 1 / 0
Регистрация: 18.03.2014
Сообщений: 95
02.02.2026, 19:59  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
А ты спросил "зачем?"?
Написал им вопрос?

Добавлено через 1 минуту
Цитата Сообщение от Dinkin Посмотреть сообщение
Ну это как то так, проверка существует ли то на что он указывает:
C++
1
2
3
4
5
6
7
if (CVList) {                                                     
   CVList->Clear();                                            
   delete CVList;                                              
   CVList = NULL;                                          
}
if(CVList)
        ShowMessage("Он к сожалению еще тут");
Ну у меня вроде работает так.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,184
Записей в блоге: 3
02.02.2026, 20:02
Цитата Сообщение от Verevkin Посмотреть сообщение
FreeAndNil()
Да это понятно, но если его только вы его лично удаляете, а не какой то механизм где то там, а у вас только указатель.

Цитата Сообщение от Verevkin Посмотреть сообщение
Нет такого способа.
Ну там есть бубны, типа как вариант использовать умные указатели....вобщем лан
0
Злостный нарушитель
 Аватар для Verevkin
10893 / 5829 / 1288
Регистрация: 12.03.2015
Сообщений: 26,896
02.02.2026, 20:04
Цитата Сообщение от frolandr Посмотреть сообщение
Ну у меня вроде работает так.
Это когда указатель у тебя один.
Когда их несколько штук и во всех в них адрес твоего объекта, то они не обнулятся и продолжат хранить теперь уже невалидный адрес удалённого объекта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.02.2026, 20:04

Метод класса TList
Написать метод класса TList, аналогичный append, который добавляет элемент не в конце списка, а в...

Ошибка "invalid conversion from 'void*' to 'TList*"
#include <stdio.h> #include <stdlib.h> #define COUNT_RS 5 typedef struct data_t { ...

Удаление из ОЗУ элементов списка TList
В программе имеется список из объектов собственного класса. В процессе работы с программой его...

Область видимости TList и структур
Непонимаю почему не видит из другого модуля структуру и листы при обращении к ним через функцию,...

TList vs. std::vector
Если кто-то знает, то подскажите, пожалуйста, в чем имеются принципиальные (ощутимые на практике)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru