![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 06.01.2012
Сообщений: 8
|
![]()
В программе использую механизм запрета запуска второй копии программы. При запуске второй копии передаю фокус ранее запущеной копии, а последнюю копию просто закрываю. Если окно работающей копии свернуто, то разворачиваю на экран. Все вроде работает. Проблема возникает, если в момент запуска второй копии работающая копия имеет открытое дочернее окно (например окно с сообщением об ошибке). Главное окно приложения виснет, не реагируя на клавиатуру и мышь. Понимаю, что перед передачей фокуса нужно сначала проверить наличие открытого дочернего окна и только после этого передать фокус и не главному окну, а дочернему (с сообщением об ошибке). Помогите разрулить ситуацию. Заранее благодарен
|
![]() |
![]() |
![]() |
#2 | |
Участник клуба
Регистрация: 10.08.2010
Сообщений: 1,401
|
![]() Цитата:
2. Вам надо не "Передача" А переход на другом визуальные компонентов ! Это будет Edit или кнопка Button ! Не забиваем что переход из одного компонента на второго зависеть на TabOrder 3. Для примера на простои форму выложим 3 Edita и 1 Button и переход фокуса делаем при нажатие Enter . На форму есть такой события OnShortCut Код:
Код:
E_MAIL: rijgvina7@yahoo.com
|
|
![]() |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 02.03.2014
Сообщений: 439
|
![]()
Сергей Горбач Не понимаю, зачем передавать фокус? Не проще запущенной копии проверить наличие запущенной программы, и в случае присутствия таковой закрываться? Без всяких фокусов.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 912
|
![]()
XE5, он так и делает, а фокус передает на 1-й экземпляр для того что бы пользователь видел, что программа запущена. (Актуально если открыто больше 2 окон с чем бы то ни было)
Сергей Горбач, как реализован механизм проверки и передачи? |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 20.12.2013
Сообщений: 164
|
![]()
Не проще реализовать это так?
Код:
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 06.01.2012
Сообщений: 8
|
![]()
KTA87 меня правильно понял.
Сейчас реализовано так: Код:
Последний раз редактировалось Сергей Горбач; 31.03.2014 в 14:31. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А так
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 20.12.2013
Сообщений: 164
|
![]()
Аватар, так не получается
Код:
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Ну не в OnCreate формы это же делать. Это в dpr до Application.Initialize
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 20.12.2013
Сообщений: 164
|
![]()
ок, делаю так
Код:
программа |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача фокуса родительскому окну | rootv | JavaScript, Ajax | 0 | 13.10.2011 04:05 |
передача параметров окну | DinamoBrynsk | Помощь студентам | 5 | 28.01.2011 14:08 |
Передача информации спрятанному окну. | Andreyy | Общие вопросы Delphi | 4 | 03.08.2010 15:42 |
Передача символа другому окну | dimonbest | Общие вопросы Delphi | 15 | 28.05.2009 16:30 |
Передача фокуса по нажатию кнопки | Ch00kan0ff | Общие вопросы C/C++ | 2 | 27.03.2009 20:53 |