Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Системно-модальное окно.


Автор: Marriage 9.1.2005, 09:44
Столкнуся со следущей проблемой.
Есть приложение.
Необходимо сделать, чтобы при потере фокуса (клик мышой в за пределами формы приложения ,или alt-tab, или нажать на клаве кнопку WINDOWS) ,он фозвращался назад и приложение становилось сново активным ???
И возможно ли вообще такое ???

Автор: Marriage 9.1.2005, 16:32
Прошу прощения ....
Сделал сам, только интересно мнение других ...
Можно ли это сделать как нить по другому ???
Код

procedure MoveMouse(Form: TForm; X, Y: word);
var
 Point_: TPoint;
begin
 Point_ := Form.ClientToScreen(Point(X, Y));
 SetCursorPos(Point_.X,Point_.Y);
end;

procedure TForm1.ApplicationEvents1Deactivate(Sender: TObject);
var
mouse:TMouse;
begin
 Application.Minimize;
 Application.Restore;
 MoveMouse(Form1,Button1.Left+Trunc(Button1.Width/2),Button1.Top+Trunc(Button1.Height/2));
end;



Автор: z-END 10.1.2005, 16:43
smile
Ссори за сие (офф-топ)
Вообщем есть у меня epson сканер и софтина к нему делает так-же (переключает фокус на себя), как я ее ненавижу просто слов нет... ибо пока сканируется че-либо делать на компе, кроме как смотреть на ПрогрессБар, нереально т.к. она постоянно переключает фокус на этот гребаный прогессбар.
Подумай стоит ли тебе поступать так-же..
ЗЫ совсем офф-топ smile а можно как-то запретить приложению получать фокус?

Автор: _hunter 10.1.2005, 16:57
ответ на офтоп smile
фокус получать запретить нельзя, но можно просто спрятать это окно ( хотя могут косяки появится )

Автор: z-END 10.1.2005, 17:02
еще раз про офф-топ smile
а вот если в любой другой программе вызвать меню то тогда фокус ей не передается, только в ТаскБаре мигает... значит все-таки както можно запретить передавать фокус?
или это прикол Билла-Вороты?

Автор: _hunter 10.1.2005, 17:34
это приколы Билла ( в винде, начиная с ХР ( кажись ) ) передать фокус ( SetForegroundWindow ) на окно, не имеющее потока ввода, нельзя
думаю, при вызове меню и происходит передача ввода ( ходя стандартную звонилку это не волнует ( вот ее я ненавижу ) )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)