![]() |
|
![]() ![]() ![]() |
|
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
Возникла следующая проблема:
Из обработчика компонента нужно удалить компонент. Имеется динамически, созданный лыйбл (TLabel), на него повешан OnClick, в этом событии лэйбл удаляется, но естественно возникает ошибка, при выходе из события. Может кто-нибудь знает как это грамотно реализовать. Спасибо. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
поиск по форуму знает...
это называется самоудаление и тема такая уже поднималась: http://forum.vingrad.ru/index.php?showtopic=66353 http://forum.vingrad.ru/index.php?showtopic=53760 -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
Хорошо, попробую...............
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
__Hunter, из тех ссылок, что вы предложили ни одна не помогла.
Может еще что посоветуете....... P.S. Может с Sender, что-нибудь попробовать сделать. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
а может сделать просто: запустить таймер в этом обработчике и в таймере удалить твой лэйбл
|
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
Я делаю следующим образом:
И все равно при выходе из BtnClick вылетает ошибка. Самое интересное в том, что программа дальше продолжает работать. Добавлено @ 13:57 chaos, таймер конечно хорошо, но все равно не поможет, да и сним как-то криво получается -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
а это:
Sender = btn2; зачем? + понятное дело что ошибка вылетает -- видно, не внимательно ты читал... там ведь русским языком написано -- нужен предок, который и занимается удалением всех детей. делать это можно по сообщению -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Сама по себе идея хромает. С таймером вариант пройдет. Но опять некрасиво. Нужно установить таймер на некоторое формальное значение.
Нужно поменять условие задачи: удалять ненужные объекты должен внешний по отношению к ним объект, используя определенный признак. Самое простое использовать Tag, более сложное - использовать спиосок. Теперь когда и кто должен удалять. Естественный ответ - удалять нуджно тогда, когда программа свободна. Ну и соответвенно сразу становится понтяно, кто удалzет - Application. Выкладываем на форму компонент ApplicationEvents и задаем ему обработчик OnIdle
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
__Hunter, я так думал, что Sender содержит адрес объекта, вот и пытался сменить его на новый.
А что касается предка, так у объекта предок форма, но ведь это ничего не меняет. Добавлено @ 14:18 Vyacheslav, а когда происходит ApplicationEvents1Idle? -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Когда программа не занята ничем другим.А поскольку практически любая интеррактивная программа постоянно ничем не занята, то имеем моментальное удаление твоих компонентов
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
Думаю дельное решение.
Спасибо всем. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: нет Всего: 5 |
Artemon
Зачем ты пытался заменить на новый?
Это сообщение отредактировал(а) Neitron - 13.10.2005, 16:28 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
Neitron, код который ты привел - заведомо не рабочий, если ты удалишь кнопку из ее же обработчика - то получится следующая ситуация - кнопки нет, а ее обработчик еще действует.
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |