![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Kuper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2006 Репутация: нет Всего: нет |
У меня есть форма fsMDIForm и две формы fsMDIChild.
Проблема в следующем: мне необходимо узнать о закрытии одной из форм fsMDIChild и в зависимости от того, по нажатию на какую кнопку она была закрыта, выполнить одно из двух действий на другой fsMDIChild форме. Подскажите какие-нибудь варианты, как это сделать. |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
то есть? из систем меню или твоя кнопка? а вообще вариантов много: - если одна форма знает о другой то можно на Event сажать. - если одна форма знает о другой то можно посылать ей сообщения. - можно сообщения слать Broadcast-ом. - можно что бы Main форма управляла ею - итд... ... Все зависит от конкретной ситуации. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Kuper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2006 Репутация: нет Всего: нет |
Одна форма fsMDIChild отображает данные из БД.
Другая fsMDIChild форма вызывается из первой fsMDIChild для редактирования одной записи. На второй форме есть две кнопки "Ok" и "Cancel". Мне необходимо при нажатии на кнопку "Ok" обновить на первой форме fsMDIChild данные, при условии что она ещё нее закрыта. Если она закрыта или нажата кнопка "Cancel", то ничего не делать. |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Вторую форму вызывай модально (ShowModal), т.е.:
На кнопку Ок ModalResult := mrOK, на Cancel соответственно mrCancel. на дальше:
Добавлено @ 15:08 fmMDIChildDialog твоя вторая форма с кнопочками OK и Cancel. Это сообщение отредактировал(а) Rennigth - 1.2.2006, 15:07 -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Kuper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2006 Репутация: нет Всего: нет |
Так было первоначально. Но трудность в том, что первая форма в этом случае недоступна, то есть на ней нельзя ничего посмотреть.
А это бывает необходимо, т.к. на первой fsMDIChild отображаютя иерархично несколько справочников из БД. |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Тогда вешать Event-ы на нажатие кнопок. а формы вызывать StayOnTop.
Добавлено @ 15:21 Сейчас если хочешь набросаю код. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Kuper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2006 Репутация: нет Всего: нет |
Если не трудно, но приведи пример!
|
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
-------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| Kuper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2006 Репутация: нет Всего: нет |
Это мне не подходит.
Так как если будет вызываться не одна форма fsMDIChild, а несколько (поочереди или сразу не имеет значения), то для них нужно будет в Unit1 описывать нажатие данных кнопок. А нажатие данных кнопок на этих формах сопровождается не только закрытием формы, но и сохранением данных в БД. Проблема ещё в том, что форма отображения данных разрабатывал я, а формы редактирования разрабатывают другие люди и у каждого свои способы сохранения изменений. Мне лишь остаётся подключить даные формы к себе в модуль и вызывать обновления при закрытии форм редактирования по нажатии на кнопки "Ok". Поэтому мне и требуется отловить как-нибудь закрытие форм редактирования и определить как они закрыты: "Ok" - с сохранением изменений; "Cancel" - без сохранения изменений. Связи между моей формой и формами редактирования никакой нет, кроме вызова. |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
подругому никак, или Event-ы тебе все равно должны отдавать или на всех дочерних формах (лутше пронаследоваться от одной) должна быть property какая-нибудь с OK или Cancel и ловить Onclose этих форм и проверять Property каким образом закрывали. Ну еще как вариант FindWindow, искать кнопки по Caption, кастить и также выдирать OnClick, кстати вполне реально но если честно то извращение жуткое.
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
![]()
|
| Правила форума "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. |