Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив едитов
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Client
У меня есть массив едитов. Но не все из них созданы (они динамические). Я их создаю, с ними работаю, а потом мне надо их удалить. Но я не знаю существуют ли некоторые из них или нет. Так вот, как проверить существует ли едит? (может надо сравнить что-то с Nil?)

Добавлено через 6 мин.
И как правильно удалять эти едиты?
сначала по-одному -MasEdit[n].free и потом dispose(MasEdit) или по-другому?
volvo
Цитата
И как правильно удалять эти едиты?
Вызывать метод Free, он сам проверит, существует ли объект, и если да - то удалит его, если нет - ничего страшного не произойдет, вызов Free будет проигнорирован.

Цитата
и потом dispose(MasEdit)
А вот это уже зависит от того, как ты выделял место для хранения самих указателей на TEdit-ы... Если массив описан статически:
var
arrEdit: array[1 .. maxEdits] of TEdit;
, то никакого Dispose вообще не надо.
Client
У меня 2 кнопки-создать и удалить. При создании если я заполняю все едиты(5 шт) то добавляется еще 1 едит. А на кнопку удалить я удаляю все 6 едитов. Когда появляется 6 едит и я нажимаю удалить-все нормально. После удаления я создаю и не все едиты заполняю, т.е. их 5 так же и остается. Нажимаю удалить и ошибка при обращании к памяти ((
Массив статический, new/dispose не использую, удаляю методом free

Добавлено через 15 мин.
Исправил прогу, работает без ошибки. (дополнительный едит создаю всегда, а задаю остальные свойства уже потом)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.