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

Вниз

Как закрыть модальную форму   Найти похожие ветки 

 
Diogen   (2002-11-14 10:59) [0]

Форму открывал так
Form5.ShowModal;
а закрываю
Form5.Close;
окошко не закрывается , при этом кнопкой закрытия окна форма нормально закрывается


 
Skier ©   (2002-11-14 11:04) [1]

>Diogen
Дело в том что Form5.Close не будет
отрабатываться то тех пор пока не отработает функция
Form5.ShowModal (т.к. форма будет модальной)

Обычно с модальными формами поступают
примерно так :

1)

Form5 := TForm5.Create(...);
try
Form5.ShowModal;
finally
FreeAndNil(Form5);
end; //try


2)


Form5 := TForm5.Create(...);
try
if Form5.ShowModal = mrOK then begin
//your code goes here...
end; //if
finally
FreeAndNil(Form5);
end; //try



 
Calm ©   (2002-11-14 11:04) [2]

А зачем закрывать Form5.Close? Тем более, если кнопкой закрытия нормально закрывается?

Вообще, модальное окно нужно/можно закрывать
ModalResult:=<то, что нужно>


 
Calm ©   (2002-11-14 11:05) [3]

Skier совершенно прав. Я отвечал, не видя его сообщения.


 
KoluChi ©   (2002-11-14 11:08) [4]

ModalResult := mrNone;


 
KoluChi ©   (2002-11-14 11:10) [5]

>Calm © (14.11.02 11:04)
Извини просмотрел.


 
Roman_Tutov   (2002-11-14 12:06) [6]

сенькс . Попробую


 
Diogen   (2002-11-15 15:54) [7]

Ага . Работает , но как-то странно .
Есть изменяешь ModalResult в обработчике
события кнопки то все работает . а ежели
меняшь ModalResult в процедуре Form.FormActivate
то фиг

---так работает ----
procedure TForm18.SpeedButton1Click(Sender: TObject);
begin
Form18.ModalResult :=100;
end;

-----так нет---------
procedure TForm18.FormActivate(Sender: TObject);
begin
Form18.ModalResult :=100;
end;
end.


 
Calm ©   (2002-11-15 15:58) [8]

А зачем закрывать модальную форму при ее активации? В чем смысл?
Форма закроется сразу при появлении. В других случаях событие возникать не будет, т.к. потерять фокус форма не может (она же модальная).


 
Diogen   (2002-11-15 16:04) [9]

ну у меня куча кода отрабатывает при активации формы .
а затем как это все отпахало нужно ее закрыть


 
Vint ©   (2002-11-15 16:09) [10]

>Diogen (14.11.02 10:59)

Всегда закрывал именно Close; и все работало !?!?!


 
Calm ©   (2002-11-15 16:12) [11]

А нельзя запустить кучу кода без всякого окна?
Я, конечно, не владею все информацией по вопросу, но не понимаю, зачем открывать окно, если оно все равно обязательно сразу закроется?


 
Reindeer Moss Eater   (2002-11-15 16:15) [12]

Удобно делать так. В модуле модальной формы объявляем что-то похожее на:

function ShowMyModalForm : boolean;
begin
with TmyModalForm.Create(Application) do
try
Caption:=.....
//Инициализация чего надо
Result:= ShowModal = mrOk;
if Result then
...
else
...
finally
Free;
end;
end;




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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
4-83068
bedboy
2002-10-15 09:52
2002.11.25
handle


3-82625
Свой
2002-11-04 21:38
2002.11.25
File in Paradox


14-82959
Z-Yuri
2002-11-02 14:50
2002.11.25
Кто пользуется ERWin, RoboCase и др. средствами?


1-82725
Программист
2002-11-15 06:54
2002.11.25
Как определить, что мышь уже не находится над картинкой.


1-82809
neXt
2002-11-13 17:59
2002.11.25
Как в XPath указать родительский узел?