Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Автоматическое фокусирование окна   Найти похожие ветки 

 
MixAnOL   (2005-10-13 11:56) [0]

Здорова всем!

Нужно решить проблему, когда рабочее окно теряет фокус ввода (по разным причинам), то нужно это окно опять активировать.

Что-то ни как не получается....
Есть у кого идеи?


 
Digitman ©   (2005-10-13 12:08) [1]

у формы есть событие OnDeactivate, в обработчике которого, наверно, достаточно будет вызвать метод Activate этой формы


 
Игорь Шевченко ©   (2005-10-13 12:10) [2]


> когда рабочее окно теряет фокус ввода (по разным причинам),
>  то нужно это окно опять активировать.


В корзину такие программы


 
MixAnOL   (2005-10-13 12:21) [3]

>В корзину такие программы

Ну не надо тут разводить..... а если это рабочая программа типа АРМа, где фокус всегда должен быть в одном окне?

>достаточно будет вызвать метод Activate этой формы
дык это было первое что я пробовал.... не работает....

или вызывать надо что-то другое...


 
Digitman ©   (2005-10-13 12:27) [4]


> не работает


вот и рассказывай подробно, что там и как у тебя "не работает" ..

телепаты как всегда - в отпуске)


 
MixAnOL   (2005-10-13 12:35) [5]

твой предложенный метод не работает)))
у меня, лично, это событие не срабатывает когда деактифирутся окно...

Создал пустой проект, в OnDeactivate написал Form1.Activate; поставил бряк, запустил, жахнул на рабочий стол, т.е. деактивировал окно, - бряк молчит.

Может эта деактивация для многооконных приложений? а мне надо при переключении на другое приложение...


 
Игорь Шевченко ©   (2005-10-13 12:44) [6]


> Ну не надо тут разводить..... а если это рабочая программа
> типа АРМа, где фокус всегда должен быть в одном окне?


Не издевайся над пользователем


 
MixAnOL   (2005-10-13 12:54) [7]

>Не издевайся над пользователем
Издевательсвом будет есть как раз этот фокус потеряется... так что оставь свои замечания при себе...

Я так понял что нужно смотреть в сторону Application.OnDeactivate; но чего там прописать? Application.BringToFront не помогает...


 
Leonid Troyanovsky ©   (2005-10-13 13:20) [8]


> MixAnOL   (13.10.05 12:21) [3]

> Ну не надо тут разводить..... а если это рабочая программа
> типа АРМа, где фокус всегда должен быть в одном окне?


Пускай оное приложение на отдельном собс-ручно
созданном десктопе и будет тебе счастье.

RTFM: msdn: CreateDesktop, SetThreadDesktop, SwitchDesktop,
CloseDesktop.

--
Regards, LVT.


 
markers ©   (2005-10-13 13:34) [9]


> Пускай оное приложение на отдельном собс-ручно
> созданном десктопе и будет тебе счастье.
> RTFM: msdn: CreateDesktop, SetThreadDesktop, SwitchDesktop,
> CloseDesktop.

IMHO Черезчур, вещь конечно хорошая, но тогда это будет смахивать на программу удалённого администрирования компзала....


 
Игорь Шевченко ©   (2005-10-13 13:54) [10]


> это будет смахивать на программу удалённого администрирования
> компзала


Это еще почему ? :)


 
MixAnOL   (2005-10-13 14:09) [11]

А попроще ничего нет?)))
почитал про Desktopы, идея понравилась...


 
Leonid Troyanovsky ©   (2005-10-13 14:36) [12]


> MixAnOL   (13.10.05 14:09) [11]
> А попроще ничего нет?)))


А чего там сложного?

http://groups.google.com/group/borland.public.delphi.nativeapi/msg/04a7a516cbbee32a

--
Regards, LVT.


 
Digitman ©   (2005-10-13 14:47) [13]


> MixAnOL   (13.10.05 12:35) [5]
> твой предложенный метод не работает)))
> у меня, лично, это событие не срабатывает когда деактифирутся
> окно...
>
> Создал пустой проект, в OnDeactivate написал Form1.Activate;
>  поставил бряк, запустил, жахнул на рабочий стол, т.е. деактивировал
> окно, - бряк молчит.


а комментировать твое "рабочее окно теряет фокус ввода" Пушкин будет ?

код приведен для случая, когда фокус пытается получить любое иное окно того же процесса !

что ,обязательно догадываться нужно о том что тебя интересует ситуация с потерей фокуса, выходящей за рамки окон одного и того же процесса ?


 
MixAnOL   (2005-10-13 14:49) [14]

Я сделал почти тоже самое, только не дошел до окна на новом декстопе...

Спасибо! Это тоже решение, буду его тоже использовать...


 
MixAnOL   (2005-10-13 14:53) [15]

2 Digitman: не ругайся, понял уже...


 
psa247 ©   (2005-10-14 17:20) [16]

смотри пост CBT_Hook в этом форуме. Там есть возможность контролировать потерю фокуса. Единственное, аккуратнее надо быть при написании кода. Подвесить систему можно.



Страницы: 1 вся ветка

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.078 c
14-1129548828
Fast2
2005-10-17 15:33
2005.11.06
Где найти компоненты для работы с FireBird?


1-1129709934
maVladimir
2005-10-19 12:18
2005.11.06
Timer. Рестарт.


1-1129484545
x.pro
2005-10-16 21:42
2005.11.06
Сглаживание графиков


2-1129128179
Fast2
2005-10-12 18:42
2005.11.06
Как запичать в таблицу данные типа Date?


5-1101036755
Ilg
2004-11-21 14:32
2005.11.06
Простейший Редактор свойств