Главная страница
    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.042 c
2-1129109140
L*D
2005-10-12 13:25
2005.11.06
Как спрятать консолевое приложение?


6-1122044361
vers
2005-07-22 18:59
2005.11.06
TIdTCPClient - InputBuffer


14-1129567066
ArtemESC
2005-10-17 20:37
2005.11.06
Эффективный алгоритм


2-1128405886
Well
2005-10-04 10:04
2005.11.06
SQL запрос в FoxPro, соединение 2 таблиц


2-1128976228
Цукор5
2005-10-11 00:30
2005.11.06
TCanvas





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