Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
9-1118349447
Кефир87
2005-06-10 00:37
2005.11.06
Collision check -> Sphere vs World -> Реализация


3-1127730434
_RusLAN
2005-09-26 14:27
2005.11.06
Как перенести даные из MS Access в базу Firebird


14-1129577447
raymond
2005-10-17 23:30
2005.11.06
Инет-провайдер, PPP, хочу разобраться...


2-1129476362
_WWW
2005-10-16 19:26
2005.11.06
WebBrowser


2-1129388903
Боян Георгиев
2005-10-15 19:08
2005.11.06
Как завершить програму без обекта Application





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский