Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поведение формы, в зависимости откуда вызвана 
V
    Опции темы
iDeus
Дата 4.11.2011, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Deus vult
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 5.6.2008
Где: Vladivostok

Репутация: нет
Всего: нет



Здравствуйте, подкиньте пожалуйста пару идей решения следующей проблемы:

Скажем, есть 3 формы: 

1. Большая MDIForm'а с MaimMenu
2. MDIChild форма rStart
3. MDIChild форма rUsers

Форму rUsers можно вызвать 2 способами: через MainMenu с главной формы, и с помощью кнопки на rStart.

Необходимо сделать так, что бы, 
если rUsers вызвана через главное меню, то по закрытию (на крестик), она просто закрывалась(TUsersForm::FormClose), 
а если rUsers вызвана кнопкой с rStart, то по закрытию rUsers, помимо FormClose отрабатывали еще некоторые функции.

В обоих случаях форма rUsers создается "руками":
Код

    TUsersForm* UsersForm;
    UsersForm = new TUsersForm(Application);
    UsersForm->ShowRight();


Может во втором случае, когда форма вызывается кнопкой с rStart, можно как-то так организовать этот вызов, что бы событие нажатия кнопки ждало, пока rUsers будет закрыто:
Код

void __fastcall TStartForm::bb_usersClick(TObject *Sender)
{
    this->HideLeft();

//создаем и показываем форму
    TUsersForm* UsersForm;
    UsersForm = new TUsersForm(Application);
    UsersForm->ShowRight();
//ждем ее закрытия
        //дополнительная функция
}
  
PM MAIL ICQ Skype GTalk   Вверх
math64
Дата 4.11.2011, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 4
Всего: 72



Нужно на FormColse повесить свой обработчик:
Код

void __fastcall TStartForm::bb_usersClick(TObject *Sender)
{
    this->HideLeft();

//создаем и показываем форму
    TUsersForm* UsersForm;
    UsersForm = new TUsersForm(Application);
    UsersForm->ShowRight();
    UsersForm->FormClose = UserFormClose;
}

void __fastcall TStartForm::UserFormCLose(TObject *Sender)
        //дополнительная функция
}

Но если пользователь вместо того, чтобы закрывать UserForm решит закрывать всё приложение, нужно принять меры, чтобы
UsersFormClose не вызывался, если TStartForm будет удалена до UsersForm.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.