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