Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Две формы [D7]


ванька ©   (2008-02-03 20:30:00) 

Есть две формы, из первой вызывается вторая:
 with TForm2.Create(Self) do
   try
     ShowModal;
   finally
     Free;
   end;


А во второй такой код:
procedure TForm2. FormActivate(Sender: TObject);
begin
 ModalResult := mrOk;
end;


Почему не срабатывает код в Form2?

Спасибо.


Loginov Dmitry   (2008-02-03 22:51:00) [1]

> Почему не срабатывает код в Form2?


Видимо, FormActivate() вызывается до обнуления ModalResult. Т.е. ты устанавливаешь
ModalResult := mrOk;
а после этого VCL его обнуляет, поэтому никакого толку. Close не срабатывает по той же причине.


Johnmen   (2008-02-03 22:31:00) [2]


> Тут уж точно должно закрываться?

Точно не должно.
Ибо вызывать методы, изменяющие видимость формы, из процедур обработки событий, связанных и изменением видимости, недопустимо.


ванька   (2008-02-03 20:49:00) [3]

Ну а что она должна сделать тогда?

Тот же пример с ModalResult, но применимый к нажатию кнопки:
procedure TForm2.Button1Click(Sender: TObject);
begin
 ModalResult := mrOk;
end;


Закрывает форму.

И такой пример тоже не работает:

procedure TForm2.FormActivate(Sender: TObject);
begin
 Close;
end;


Тут уж точно должно закрываться?


Johnmen   (2008-02-03 20:43:00) [4]

С какой стати должна закрываться?


ванька   (2008-02-03 20:42:00) [5]

Ну у меня такой пример не работает. Form2 не закрывается.


Johnmen   (2008-02-03 20:35:00) [6]


> не срабатывает код в Form2

С чего ты взял?


Наверх

Титульная страница Поиск, карта сайта Написать письмо