Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-82925
BJValentine
2002-11-05 15:19
2002.11.25
Хелп, плиз!!!


1-82693
K_O_T
2002-11-14 14:36
2002.11.25
Глюк с ListView


14-82982
Пират
2002-11-06 17:13
2002.11.25
Пиратские программы???


3-82683
Progr@mist
2002-11-03 12:05
2002.11.25
Невидимость полей


3-82599
N_M_A
2002-11-05 06:10
2002.11.25
Помогите новичку в Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский