Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приложение с двумя фокусами, две формы - два фокуса 
V
    Опции темы
mistrmax
Дата 10.5.2012, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Здравствуйте. Существует приложение состоящее из двух форм. При нажатии на кнопку на первой форме создаётся и показывается вторая форма, и нужно чтобы эта вторая форма не забирала фокус у первой. Пробовал сразу после показа второй формы отдавать фокус первой, но этот вариант не подходит, так как прерывает работу пользователя с компонентами ввода текста. Собственно, как такое сделать? Заранее благодарен.
PM   Вверх
northener
Дата 10.5.2012, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Фокус может быть только один.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
C4EBA
Дата 11.5.2012, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 13.4.2009

Репутация: нет
Всего: 1



А зачем вообще два фокуса? Ведь пользователь в конкретный момент времени работает с одной из форм.
mistrmax, расскажи, как должно работать приложение, может быть, ты пытаешься реализовать не то, что нужно для его работы.
PM   Вверх
mistrmax
Дата 11.5.2012, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Иногда при обработке некоторых данных в моей программе появляется ошибка по той или иной причине и нужно сообщить об этом пользователю. Было рассмотрено несколько вариантов: 
— стандартное окно ошибки (MessageBox, MessageDlg, ShowMessage и.т.п.) но они мешают при работе с программой; 
— вывод ошибки в лог, однако лог занимает много рабочего пространства в программе и делать лог для одних лишь ошибок как-то бессмысленно;
— небольшое окно внизу экрана, какие появляются к примеру в QIP, ICQ при печати или появлении нового сообщения; 
Последний вариант и был выбран. Уже все реализовано только существует проблема с фокусом.
PM   Вверх
mistrmax
Дата 11.5.2012, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Всё, всем спасибо. Вот что нашёл:
Код

var
  AcitveWnd:THandle;
begin
  //получаем текущее активное окно
  ActiveWnd:=GetActiveWindow;
  //показываем форму в неактивном состоянии
  ShowWindow(Handle,SW_SHOWNOACTIVATE);
  //отдаём фокус главной форме
  SetActiveWindow(ActiveWnd);
end;

PM   Вверх
MetalFan
Дата 12.5.2012, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(mistrmax @  11.5.2012,  17:04 Найти цитируемый пост)
SW_SHOWNOACTIVATE

Тоже об этом подумал... но одним ShowWindow не обойдетесь. Скорее всего получите грабли в виде TForm.Visible <> IsWindowVisible


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1184 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.