![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| chikistbuch |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 15.3.2008 Репутация: нет Всего: 1 |
Хочу сделать чтобы при нажатии на Enter в Edit'е он исчезал, да не просто исчезал, а вообще удалялся из формы. Edit'ы созданы в run-time (MyEdit1, MyEdit2, и т.д.)
К примеру в MyEdit1 нажали Enter, вот код:
а вот и сама процедура удаления DestroyComponent:
Вопрос в том, что после завершения процедуры TForm1.EditKeyPress, выскакивает ошибка. Как я понимаю, приложение не может завершить выполнение процедуры несуществующего компонента ![]() При выполнении этого же кода в TForm1.EditExit, вызываемое как onExit, все ок
Подскажите, как удалить edit при нажатии в нем enter Это сообщение отредактировал(а) chikistbuch - 26.5.2012, 17:26 |
||||||
|
|||||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Посылайте форме ваше собственное сообщение с помощью PostMessage. В обработчике этого сообщения и уничтожайте компонент.
-------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| chikistbuch |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 15.3.2008 Репутация: нет Всего: 1 |
расскажи, пожалуйста конкретнее: как именно послать сообщение и написать свой обработчик.
Вот что я нашел в нете
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Почти оффтоп:
northener, да, статья нужна Добавлено @ 18:23 Расшифровка ответа northener: вот. Настоятельно рекомендую прочитать пост БелАмор-а Это сообщение отредактировал(а) kami - 26.5.2012, 18:30 |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Это сообщение отредактировал(а) northener - 26.5.2012, 18:54 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| chikistbuch |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 15.3.2008 Репутация: нет Всего: 1 |
kami, northener, да вы просто боги!!! СПС
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
chikistbuch, а ты сомневался? ;)
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Вот ещё раз полазил по нашим форумам и по всемирной помойке. Но так и не нашел статью, в которой подробно и с объяснениями было бы описано как правильно уничтожать объекты! И не только из обработчиков их событий. Но и вообще. Нет нормальной (и не только нормальной - просто никакой) статьи, где бы описывалось различие между методами Free, Destroy, Release. Это сообщение отредактировал(а) northener - 27.5.2012, 03:02 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
-------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| MetalFan |
|
||||||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
А зачем статья? там же в двух предожениях можно описать, если глянуть исходники. Free = проверка Self <> nil + Destroy;
Release относится только к форме и равно "отложенному" Free. т.е. форме отправляется сообщение (CM_RELEASE), при обработке которого форма и прибивается.
А можно написать еще более универсальный вариант, в котором передавать указатель на компонент, который надо "пришибить". -------------------- There are always someone smarter than you... |
||||||
|
|||||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
По ссылке которую дал kami именно так и сделано. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Ну хорошо. Пусть не статья. Пусть ссылка на FAQ. Лично для меня проще иметь под рукой готовую ссылку на то, где автор вопроса сможет получить подробную информацию о том как решить его задачу, чем всякий раз "набивать" пример в своём ответе. (Пальцы чай не казённые, а мои собственные. Это сообщение отредактировал(а) northener - 28.5.2012, 01:06 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
тут может быть проблема, если несколько раз создаешь и уничтожаешь объект если уничтожаешь просто Obj.Free, то потом при проверке if obj <> nil результат будет True поэтому лучше уничтожать так
или
|
||||
|
|||||
![]()
|
| Правила форума "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. |