Консультация № 55332
13.09.2006, 19:43
0.00 руб.
0 2 1
Здравствуйте уважаемые эксперты!!!
В процедуре OnClose (для Form1) применил такой код (в цикле):
with TEdit(findComponent(‘Edit‘+inttostr(i))) do free. После чего программа (во время работы и закрытия формы) выдала такое сообщение:
…exception class EAccessViolation with message ‘Access violation at address 00000000. Read of address 00000000‘. Process stopped. Use Step or Run to continue.
И такое сообщение (при другом запуске программы):
…exception class EInvalidOperation with message ‘Control ‘‘ has no parent window‘. Process stopped. Use Step or Run to continue.
Метод Free применяю только в процедуре OnClose и нигде больше.
Что делать в этом случае? Спасибо за внимание.

Обсуждение

Неизвестный
13.09.2006, 19:52
общий
это ответ
Здравствуйте, Piit!

Функция FindComponent не нашла какого-то из Edit-ов - тогда ее результат nil
Правда, метод Free ругаться не должен в этом случае... Нет ли выше случайно еще какой-либо строки, обращающейся к Edit-у таким же образом?
Неизвестный
13.09.2006, 20:12
общий
А зачем в OnClose уничтожать эдиты, если при уничтожении формы она сама уничтожит и эдиты и всё остальное?
Форма ответа