![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не возвращается фокус [D7, WinXP]
BeckLee © (2006-05-18 14:40:00)Есть форма, при нажатии кнопки создаю вторую, не модально. Только есть условие, первая форма так и должна быть активной. Фокус должен передавать второй только когда на нее щелснут мышью.
Делаю GetforegroundWindow(Первая форма), а после отображения второй ЫуеforegroundWindow(Первая форма). Но после этого вторая форма отказывается вообще что-то воспринимать. Поведение аналогично Enabled=False
Подскажите, может все это нужно как-то по другому делать?
Leonid Troyanovsky (2006-05-18 18:54:00) [1]
> BeckLee (18.05.06 14:40)
> Есть форма, при нажатии кнопки создаю вторую, не модально.
> Только есть условие, первая форма так и должна быть активной.
> Фокус должен передавать второй только когда на нее щелснут
procedure TFormX.ShowNA;
begin
ShowWindow(Handle, SW_SHOWNA);
Visible := True;
end;
Т.е., создается как обычно, а затем ShowNA.
--
Regards, LVT.
BeckLee (2006-05-18 16:49:00) [2]Может кто разбирался с флагами SetWindowPos? Может быть она сможет помочь?
BeckLee (2006-05-18 16:17:00) [3]Виноват, не совсем корректно сформулировал вопрос:
Ситуация такая - форма2 - всплывающее окно, и задача состоит в том, чтобы оно показавшись не переключило пользователя с его текущей задачи, а повисело себе и закрылось. Так как делаю я работает, но вспл. окно после потери фокуса почему-то блокируется.
Savek (2006-05-18 15:37:00) [4]По моему проще не куда
TForm1.Button1Oclick ...
begin
Form2.Show; //показываем
Form1.SetFocus; // возвращаем фокус
end;
Или я не понял проблему?