Главная страница
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.017 c
3-82639
Uran
2002-11-06 11:54
2002.11.25
Ограничение прав доступа в IB


1-82793
dimonf
2002-11-13 15:30
2002.11.25
Как зашифровать от лишних глаз INI файл ???


1-82769
Diogen
2002-11-14 10:59
2002.11.25
Как закрыть модальную форму


3-82600
dim-
2002-11-04 11:47
2002.11.25
автоподставление


4-83059
MSAlex
2002-10-10 20:08
2002.11.25
Как отобразить картинку на форме...