| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Запутался с указателями |
| Автор: Isaev 28.3.2013, 16:33 | ||||
| Доброго времени суток! Что-то я завис в простом месте совсем, требуется свежий взгляд на проблему) Есть массим с данными, каждый элемент которого является записью со сложной структурой
нужно создать ListBox c Elems[n].txt (некоторыми по фильтру выборочно) и привязываем к Items соответствующие элементы массива для доступа
Заранее благодарен |
| Автор: Isaev 28.3.2013, 19:28 |
| мне в AddObject указатели надо добавить на элементы массива просто по идее, чтобы не дублировать данные лишние |
| Автор: bems 28.3.2013, 21:38 |
| может быть вместо NewElem^:=Elems[I]; имелось в виду NewElem:=@Elems[I]; ? |
| Автор: Isaev 28.3.2013, 22:48 |
| bems, точно, благодарю! А потом ничего не надо удалять за собой при таком подходе? т.е. обычный ListBox.Clear; эти все указатели тоже уничтожит? |
| Автор: northener 28.3.2013, 23:14 |
Не уничтожит, а удалит из своего списка. |
| Автор: Isaev 29.3.2013, 00:57 |
не надо меня ещё больше путать) не одно ли это и то же? если мы говорим о указатете, то удалить его из списка и уничтожить это одно и то же ведь или всё же есть вероятность утечки памяти? |
| Автор: Isaev 29.3.2013, 04:19 | ||
northener,
так о том и речь, это вы не внимательны просто... я писал уничтожатся указатели(или "удалятся из списка" как написали вы) на записи, а не сами данные. |
| Автор: Чучмек 29.3.2013, 09:30 |
| А как они могут не уничтожится? Или как ты сам можешь их уничтожить?? |
| Автор: northener 30.3.2013, 01:42 | ||
Это вы не поняли мой пример. Записи в своей записной книжке FLBox вы сотрёте вызовом FLBox.Clear. Записи в телефонной книге Elems:Array Of TElem; никуда не денутся. Как они там были, так и останутся. Ну а сами номера TElem=Record будут жить долго и возможно счастливо, пока вы не вызовете сами Dispose или FreeMem для каждого из них. |
| Автор: Isaev 31.3.2013, 16:55 |
| на этом прикрою, спс bems, за быстрый и в тему ответ |