Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

Две формы   Найти похожие ветки 

 
ванька   (2008-02-03 20:30) [0]

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


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


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

Спасибо.


 
Johnmen ©   (2008-02-03 20:35) [1]


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

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


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

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


 
Johnmen ©   (2008-02-03 20:43) [3]

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


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

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

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


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

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

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


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


 
Johnmen ©   (2008-02-03 22:31) [5]


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

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


 
Loginov Dmitry ©   (2008-02-03 22:51) [6]

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


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



Страницы: 1 вся ветка

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
2-1202331960
w666w
2008-02-07 00:06
2008.03.02
MSSQL+ADOStoredProc - проблема с кириллицей


2-1202490492
Nowis
2008-02-08 20:08
2008.03.02
как организовать функцию в потоке ?


15-1201494496
Slider007
2008-01-28 07:28
2008.03.02
С днем рождения ! 28 января 2008 пондельник


3-1192108400
Gurd
2007-10-11 17:13
2008.03.02
memo in database paradox


2-1202290710
мскл
2008-02-06 12:38
2008.03.02
Почему нет ошибки?