Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
3-82584
alexr
2002-11-04 13:14
2002.11.25
Какой то глюк QuickReport? Помогите.


1-82760
Таня
2002-11-15 14:31
2002.11.25
строки


3-82665
kern
2002-11-06 12:21
2002.11.25
SQL


3-82632
Shen74
2002-11-05 17:48
2002.11.25
Дублирование записей в таблице.


1-82840
Брат
2002-11-14 10:57
2002.11.25
Перемещение файлов с помощью SHFileOperation...




   Наверх