Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Модальные формы [D5, Win2k]


kostushock ©   (2002-01-17 12:15:00) 

У меня такой вопрос - Есть модальная форма, например Form2. По нажатию кнопки на этой форме мне необходимо открыть в модальном режиме другую форму, например Form3, а исходную форму - Form2 - закрыть. Я пишу:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Close();
Form3->ShowModal();
}

Открывается Form3 как модальная, но Form2 всё равно остаётся открытой до тех пор, пока не закроется Form3. Так как её всё-таки закрыть, а?


panov   (2002-01-17 13:35:00) [1]

>kostushock (17.01.02 12:25)
А где ж ты, сердечный, Form2.ShowModal вызываешь?

Из какой формы?

Если не хочешь формы последовательно вызывать, то делай так:

Form2.Visible := False;
Form3.ShowModal;
Form2.Close;


yaJohn   (2002-01-17 13:01:00) [2]

>Ты это имел ввиду???
Da.
>твой вариант почему-то не проходиT
A konkretnee? Ne zakrivaetsia Form2? Voobsheto doljno rabotat".
Ili otkritie modalnoy formi prerivaet cikl obrabotki soobsheniy vo vseh ostalnih oknah prilojenia????


kostushock   (2002-01-17 12:25:00) [3]

yaJohn, твой вариант почему-то не проходит, написал
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Close();
SendMessage(Handle,WM_CLOSE,0,0);
Form3->ShowModal();
}
Ты это имел ввиду???

panov, а при чём тут Form1???? Объясни ещё раз поподробнее, а? А то я, дурачок, ничего не понял:)))


Владислав   (2002-01-17 12:24:00) [4]

Модальную форму Form3 необходимо вызывать из того места кода, откуда вызываетя Form2.

Например:

void __fastcall TForm2::Button1Click(TObject *Sender)
{
ShowForm3:=1 //Свойство Form2. Если установлено, значит отобразить Form2.
Close();
}

...

Form2->ShowModal();
if (Form2->ShowForm3) {then Form3->ShowModal()};


panov   (2002-01-17 12:19:00) [5]

TForm1.Button1.Click(...)

...
if Form2.Showmodal=mrOk then
begin
Form3.ShowModal;
end;


yaJohn   (2002-01-17 12:18:00) [6]

SendMessage(Form2.Handle,WM_CLOSE,0,0);

pisano navskidku.... I na Delphi :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо