![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Zavlab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.2.2006 Репутация: 1 Всего: 1 |
Здравствуйте.
Приплыл в своём программировании в тупик. Получается, что компонент формы должен сам себя уничтожить. На первый раз проносит(имею ввиду цикл разрушения-создания), а дальше ошибки появляются. Самые информативные такие: "Abstract error" и "Invalid pointer operation". А дальше прогу вообще выключить нельзя нормальными способами. Что ещё я обнаружил так это то, что после срабатывания метода free указатель на компоненту (Element:TControl;) равен не nil (как до создания пользуясь Create), а некоему ([csInheritable]). Это значение показывает Watch. В самом методе (Sender-ом, к примеру, является кнопка) всё происходит без Исключений, но как только дело доходит за последний end этого метода, тут же и сообщение об ошибке. Если этот же метод будет исполняться с Sender-ом в виде Form1 или другого компонента, который не подлежит удалению, то метод отрабатывается хорошо и после него тоже всё хорошо. Получается нужен кто-то ктобы потом позже произвёл удаление ненужного компонента. Думал реализовать это через сообщения, но методы Perform или WndProc работают как подпроцедуры, что совсем не подходит. Есть ли какие-либо другие способы устранить проблему. Вариант через timer оставлю как самый последний. Для наглядности приведу суть метода:
Можно и без метода FormInitialization. Грабли те же. |
|||
|
||||
| DarkProg |
|
||||||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Кажется это уже обсуждалось ранее, ну да ладно
Я тут что вижу ты связываешь массив компонентов с реальными компонентами, а что если попробовать так
А ещё предлагали вариант, я правда сам не пробовал
или так
-------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
||||||
|
|||||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
О класс и, по моему доступно изложено Да и я в этом вопросе чуток поумнее стал -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| Zavlab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.2.2006 Репутация: 1 Всего: 1 |
Спасибо! "То что доктор приписал".
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |