![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Гость_Андрей |
|
|||
Unregistered |
Выскакивает Access Violation, ну оно и понятно...
Но всё-таки, должен же быть способ ![]() P.S. Если быть точным, то мне нужно в обработчике Button1.OnClick удалить собственника этой Button1, саму Button1, а также всех остальных потомков собственника Button1. ![]() |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
можно удалять PostMessage
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Гость_Андрей |
|
|||
Unregistered |
Если можно, чуть подробнее. В сообщениях я не шибко понимаю...
|
|||
|
||||
Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
Брось на форму: TPanel, а на неё кнопку
![]() ![]()
PS: Если кнопка лежит на форме - то прибьется и форма ![]() Это сообщение отредактировал(а) Girder - 17.2.2005, 16:39 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
Гость_Андрей |
|
|||
Unregistered |
Спасибо, пойду попробую. Будут вопросы - еще напишу.
|
|||
|
||||
Гость_Андрей |
|
|||
Unregistered |
Приведенное решение действительно подходит для случая, когда есть панель, а на ней кнопка.
Однако у меня ситуация такая: есть панель1, на ней n объектов лежат, есть панель2 (своего рода Caption для Panel1) (родитель у нее - также панель1), на панели2 есть кнопка. Нужно при нажатии на кнопку у ничтожить всё. Делаю так: procedure TGrCaption._OnCloseButtonClick (Sender: TObject); var f: TMessage; begin FillChar (f, SizeOf (f), #0); f.Msg:= WM_CLOSE; TComponent (Sender).GetParentComponent.Dispatch (f); TComponent (Sender).GetParentComponent.GetParentComponent.Dispatch (f); end; Эффект от этого следующий: 1) создаю программно всю свою байду (панели с объектами), нажимаю кнопку, всё пропадает. Прекрасно! 2) еще раз создаю программно такую же конструкцию, нажимаю кнопку, всё пропадает только при повторном нажатии на нее (первая панель как-то опять появилась под второй) создаю всю хитроумную панель GrBC так: begin GrBC:= TGrBasicComponent.Create (ModelScrollBox); AssignFile (f, (Sender as TRzGroupItem).Hint); Reset (f); GrBC.LoadData (f); GrBC.Left:= LeftPositionOnCreate; GrBC.Top:= TopPositionOnCreate; end; Сдается мне, ошибка где-то в обработке WM_CLOSE, что-то я неправильно вызываю. |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Можешь попробовать заюзать ApplicationEvents.OnIdle.
|
|||
|
||||
Girder |
|
||||||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
Уничтожаем себя
![]()
Уничтож с "отцом" ![]()
Уничтожаем с "дедом" ![]()
PS: Если предок форма... то тут надо быть внимательным... так как форма не будет унижножена! Итого (для использования ![]()
Это сообщение отредактировал(а) Girder - 17.2.2005, 23:27 -------------------- Как слышим, так и пишим. Истина где-то там... |
||||||||
|
|||||||||
Гость_Андрей |
|
|||
Unregistered |
Girder, огромное тебе спасибо. Твой вариант работает!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |