Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.20;
Скачать: CL | DM;

Вниз

WM_LBUTTONDOWN перед WM_SETFOCUS   Найти похожие ветки 

 
BorNent   (2009-07-16 17:24) [0]

Добрый день!

Суть задачи: необходимо при нажатии button"a мышкой нажимать кнопку и устанавливать фокус на связанный Edit, а при проходе табом, терять фокус и фокусировать следующий по номеру объект.
Суть проблемы: первым приходит в обработку сообщение WM_SETFOCUS, а потом WM_LBUTTONDOWN. По-этому не получается идентифицировать была ли нажата кнопка или просто получила фокус с помощью прохода табом.
Предполагаемое решение: в обработчике сообщения WM_SETFOCUS нужно обработать сначала все сообщения от мыши, а за тем выполнить основной код обработчика.

Пробовал первой строчкой в обработчике вызывать метод Aplication.ProcessMessages, но результата не получил. Т.е. видимо все равно выполняется сначала WM_SETFOCUS.
Есть какие-нибудь альтернативные варианты?


 
KilkennyCat ©   (2009-07-16 18:21) [1]


> при нажатии button"a мышкой нажимать кнопку

кто=мышь

> а при проходе табом

кто=клавиатура


 
BorNent   (2009-07-16 18:30) [2]


> KilkennyCat ©   (16.07.09 18:21) [1]
>
> > при нажатии button"a мышкой нажимать кнопку
>
> кто=мышь
>
> > а при проходе табом
>
> кто=клавиатура


Пишу класс = аналог ComboBox. Почему? Необходимо, чтоб при нажатии на кнопку (маленкий button справа от Edit) не вылетало окно с предлагаемыми вариантами выбора из листа, а открывалась модальная форма, в которой можно выбрать необходимое значение из БД.
Так понятней объяснил?


 
KilkennyCat ©   (2009-07-16 18:34) [3]

понятно.
но не очень. почему фокус нельзя послать из события нажатия на кнопку? таб на нее тоже нажимает?


 
BorNent   (2009-07-16 18:39) [4]


> KilkennyCat ©   (16.07.09 18:34) [3]
> понятно.
> но не очень. почему фокус нельзя послать из события нажатия
> на кнопку? таб на нее тоже нажимает?


Если Вы имеете ввиду событие OnClick у кнопки, то здесь есть проблема, появляется эффект кратковременного фокуса на кнопке, ее можно даже нажать, если в этот момент надавить энтер ))


 
BorNent   (2009-07-16 18:42) [5]

По-этому принимать решение о потере фокуса или о нажатии на кнопке нужно в пределах обработчика WM_SETFOCUS, но проблема в информации - нажали мышкой или перешли табом ((


 
KilkennyCat ©   (2009-07-16 18:52) [6]


> можно даже нажать, если в этот момент надавить энтер ))

это не так плохо. Я сегодня столкнулся с ситуацией: восстанавливаю с акрониса раздел, мышь глюканула. работать с акронисом без мышт оказалось невозможным. Очень негативно воспринял.
Возможность работы с клавиатуры полнофунционально должна быть!


 
BorNent   (2009-07-16 19:00) [7]


> KilkennyCat ©   (16.07.09 18:52) [6]
>
> > можно даже нажать, если в этот момент надавить энтер ))
>
> это не так плохо. Я сегодня столкнулся с ситуацией: восстанавливаю
> с акрониса раздел, мышь глюканула. работать с акронисом
> без мышт оказалось невозможным. Очень негативно воспринял.
>
> Возможность работы с клавиатуры полнофунционально должна
> быть!


Проблема решается обработчиком Edit"a стрелки вниз, а кнопка не должна получать фокуса - это не эстетично.


 
KilkennyCat ©   (2009-07-16 19:08) [8]

может, поможет: http://www.cyberguru.ru/programming/delphi/message-methods.html



Страницы: 1 вся ветка

Текущий архив: 2009.09.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
3-1227276494
Zemen
2008-11-21 17:08
2009.09.20
Объясните тонконсти хранения чисел


2-1247217291
Tneduts
2009-07-10 13:14
2009.09.20
Поле типа DATE при экспорте в ДБФ


15-1243963751
AlexDan
2009-06-02 21:29
2009.09.20
Ещё тут одна мечта идиота сбылась..


2-1247574008
worldmen
2009-07-14 16:20
2009.09.20
Активация другой программы программно (вывести на первый план).


1-1216127848
IGray
2008-07-15 17:17
2009.09.20
Встроенный локализатор Delphi2007 - глюк с кириллицей!