Убираем фокус
От: SHKiN  
Дата: 24.09.05 01:23
Оценка:
Доброе время суток

Если кто обращал внимание, в виндах старше 2к при работе мышой отсутствует фокус на таких элементах, как Button, ListBox, CheckBox и т.д. Короче, на всех, на которых он может быть =)

В Delphi, однако, даже в 2005 версии подобного не наблюдается. Это конечно, мелочь, которую сложно заметить, однако меня эта мелочь довела почти до психоза

После долгих ковыряний в сырцах VCL и на MSDN фокус удалось победить!

TForm1.OnShow(Sender: TComponent);
begin
  SendMessage(Handle, WM_UPDATEUISTATE, MakeWParam(UIS_SET, UISF_NOFOCUS), 0);
end;


Все стандартные контролы выглядят как надо, исключение составляют те, где фокус злобные борланды рисуют принудительно DrawFocusRect() =)


Теперь, собственно говоря, вопрос: кто-нибудь вообще обращал внимание на этот злополучный фокус?
Re: Убираем фокус
От: Sergei I. Gorelkin Россия  
Дата: 25.09.05 05:13
Оценка:
Здравствуйте, SHKiN, Вы писали:

<...>

SHK>Теперь, собственно говоря, вопрос: кто-нибудь вообще обращал внимание на этот злополучный фокус?


Обращали, конечно. VCL, как всегда, "впереди планеты всей". И все не так просто — при работе мышой нужно еще прятать подчеркивания на компонентах типа TLabel, а также учитывать, что видимость keyboard cues зависит от настроек пользователя.
Re[2]: Убираем фокус
От: SHKiN  
Дата: 26.09.05 09:34
Оценка:
Здравствуйте, Sergei I. Gorelkin, Вы писали:

SIG>Обращали, конечно. VCL, как всегда, "впереди планеты всей". И все не так просто — при работе мышой нужно еще прятать подчеркивания на компонентах типа TLabel, а также учитывать, что видимость keyboard cues зависит от настроек пользователя.


Радует наличие родственной души =)

Подчеркивания на TLabel, на мой взгляд, не так раздражают, как полосатая рамка фокуса.
А с настройками (Экран -> Эффекты -> Скрывать указатели... для Win2K) все работает — если галочка выключена, то фокус не убирается никакими мессагами.

Предлагаю переписать нафиг VCL, чтобы фокусы и акселераторы работали как надо =)
Re[3]: Убираем фокус
От: Sergei I. Gorelkin Россия  
Дата: 26.09.05 16:18
Оценка:
Здравствуйте, SHKiN, Вы писали:

SHK>Предлагаю переписать нафиг VCL, чтобы фокусы и акселераторы работали как надо =)


Фокусы и акселераторы — это, наверное, самая незначительная причина, по которой VCL надо бы переписать нафиг. Вот только лицензионные условия этого не слишком позволяют сделать...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.