Вниз
Скачать: 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.014 c
1-82828
Odd_1
2002-11-13 21:59
2002.11.25
TCommPort


3-82661
StenKz
2002-11-06 15:47
2002.11.25
!!! Btrieve V7 for Dos как к нему обратиться?


4-83051
Resheto
2002-09-28 16:09
2002.11.25
Как создать таймер который будет работать и когда комп вырублен


3-82659
Z-Yuri
2002-11-01 15:13
2002.11.25
Подходы к разработке БД-II. Где о них можно почитать.


4-83078
misterix
2002-10-15 15:38
2002.11.25
Активизация приложения




   Наверх