Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
ВнизДве формы Найти похожие ветки
← →
ванька (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c