Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как закрыть форму вызовом обработчика внутри формы?

2.0K
09 февраля 2016 года
oleg_159
77 / / 13.04.2008
Есть форма Form1, на ней кнопка Button1. При загрузке формы происходит обработка некоторой информации и потом форма должна закруться вызовом обработчика Button1Click(0)
Но почему-то форма не закрывается.
Клик по самой кнопке Button1 закрывает форму.
Почему невозможно закрыть форму вызовом обработчика в самой форме?
Код:
void __fastcall TForm1::FormCreate(TObject *Sender)
  {
  //...

  Button1Click(0);
  }
//---------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
  {
  Form1->Close();
  }
1
09 февраля 2016 года
kot_
7.3K / / 20.01.2000
Если код такой же как приведен - то вызываются разные обработчики - форму закрывает Button10Click, а вызвать пытаются Button1Click.
Хороший пример почему не нужно использовать имена по умолчанию.
Кроме того - можно вызывать обработчик непосредственно для кнопки:
 
Код:
Button1->Click();
2.0K
09 февраля 2016 года
oleg_159
77 / / 13.04.2008
Там была описка, когда код набирал - только Button1Click (ноль лишним записал).
Но и такой код не работает:
Код:
void __fastcall TForm1::FormCreate(TObject *Sender)
  {
  //...

  Button1->Click();
  }
//---------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
  {
  Form1->Close();
  }
Может дело в том, где Button1->Click(); вызывается? Может в FormCreate() вызывать запрещено?
Нормально вызывается в других обработчиках.
2.0K
09 февраля 2016 года
oleg_159
77 / / 13.04.2008
Решение нашёл. В обработчике FormCreate(), похоже, запрещено вызывать закрытие формы.
Нужно вместо обработчика Button1Click() написать обработчик FormShow()
 
Код:
void __fastcall TForm1::FormShow(TObject *Sender)
  {
  Close();
  }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог