|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.01.2012, 21:35 | #1 |
Новичок
Джуниор
Регистрация: 02.07.2011
Сообщений: 1
|
Проблема с удалением динамического объекта
Всем доброго времени суток!
Прошу прощения за мою тупость, в программировании я шарю, как оказалось, чуть больше чем осьминог в проектировании реактивных двигателей, поэтому будьте не сильно строги. Такая вот проблема у меня. Создаю Edit, куда вводятся числа. Имеется динамический массив объектов типа TLabel. Нужно сделать следующее: чтобы при изменении значения Edit-а на форме, а вернее на Panel создавался массив Label-ов той же длины, что и введенное в Edit число. Часть процедуры сделал, и, по всей видимости, крайне криво. Как у меня реализовано: Процедура Edit1Change проверяет было ли что-то написано в Edit1 до изменения, если нет, то просто создает Label-ы. Если же было, то запоминает введенное до изменения число и если это число меньше, чем новое введенное, то считает разницу между новым и старым числом и до-создает еще такое количество Label-ов. Если же новое введенное в Edit1 число меньше, чем то, что было до изменения, то соответственно нужно удалить лишние Label-ы. Вот тут то и возникает проблема. Не могу удалить их внутри процедуры Edit1Change. Внутри другой, например если повесить удаление на нажатие Button, то все нормально, а внутри Edit1Change, хоть убей - никак. Код:
Могу прицепить весь проект, если нужно. Последний раз редактировалось Stilet; 01.02.2012 в 11:10. |
01.02.2012, 01:06 | #2 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
- Присвоение неинициализированного значения локальной переменной (OldLevels:=Levels;).
- Сокращение длины массива до того как освобождены объекты, на которые ссылались удаленные элементы массива. Даже этих логических ошибок достаточно, чтобы на коде в таком варианте поставить крест. Для удаления любого объекта, в том числе и визуального применяется метод Free К примеру, LabelsP1[i].Free; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
роблема с созданием объекта динамического массива Класса | GDA230105 | C++ Builder | 3 | 26.07.2011 09:25 |
Проблема с удалением файла | Dimarik | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 25.06.2011 20:15 |
проблема с удалением массива в vc++ | scripto | Общие вопросы C/C++ | 9 | 13.12.2010 21:48 |
динамический родитель динамического объекта | russianstrike | Компоненты Delphi | 6 | 03.10.2008 22:07 |
Проблема с удалением файлов. | Dj_smart | Общие вопросы Delphi | 4 | 22.03.2008 12:32 |