Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
25.07.2008, 20:40 | #1 |
Неактивный пользователь
Пол: Регистрация: 19.06.2008
Сообщений: 95
Репутация: 1
|
Определение нажатой клавиши мыши
Добрый день. Помогите кто может. Есть TDBGridEh, у которого установлена опция dgColumnResize. Теперь когда кликаешь по заголовку (в моем случае TitleButton), все время генериться сообщение от левой кнопки мыши, т.е. в событии OnMouseUp параметр Button равен mbLeft. Мне нужно по нажатию правой кнопки отобразить PopUp Menu (как в Windows, когда кликаешь по заголовкам колонки таблицы, например когда в окне вид - таблица).
Есть какая-нибудь функция API для определения нажатия правой клавиши мыши или как эту ситуацию обойти, т.к. прямой привязки к заголовку нет. |
Реклама: | Рекомендуем супермаркет KNS.ru - dgs-3630- 28tc - билеты на футбол в подарок каждому покупателю | пуфик в прихожую купить | da05s220 | завтра утреннее богослужение будет в крыму | теплоход россия круизы на 2024 |
25.07.2008, 21:12 | #2 |
Ответ: Определение нажатой клавиши мыши
Вот, почему
Код:
procedure TCustomDBGridEh.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); .... if {tmp(Datalink <> nil) and Datalink.Active and} (Cell.Y < TopDataOffset) and (Cell.X >= IndicatorOffset) and not (csDesigning in ComponentState) and Flag then begin if (dgColumnResize in Options) and (Button = mbRight) then begin Button := mbLeft; FSwapButtons := True; Или, что "по кривому" будет, поправь исходник: Код:
procedure TCustomDBGridEh.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); ... ARow: Longint; PopCoord: TPoint; ACol: Longint; begin if not (csDesigning in ComponentState) and (Button = mbRight) then begin Cell := MouseCoord(X, Y); ACol := Cell.X; ARow := Cell.Y; if (dgTitles in Options) then begin if (ARow = 0) then begin PopCoord := ClientToScreen(Point(X, Y)); FPopUpMenu.Popup(PopCoord.X, PopCoord.Y); Exit; end; end; end; ..... Последний раз редактировалось while; 25.07.2008 в 22:48.. |
|
08.09.2008, 23:41 | #3 |
Неактивный пользователь
Регистрация: 08.09.2008
Сообщений: 17
Репутация: 2
|
Re: Определение нажатой клавиши мыши
Может глянь какой нибудь компонент в сети типа TMS Grid
|
05.10.2008, 09:01 | #4 |
Новичок
Пол: Регистрация: 15.01.2007
Сообщений: 17
Репутация: 1
|
Re: Определение нажатой клавиши мыши
GetMouseState - Это API
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отправить событие о нажатой кнопке. | adonis217994 | Java | 2 | 24.09.2012 21:34 |
Залипают клавиши в играх | Firelord | Архив | 9 | 20.08.2009 14:31 |
определение нажатия правой кнопки мыши | Litvinenko_A | Visual C++ / С/C++ | 3 | 26.07.2008 22:42 |
|
|