Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 25.07.2008, 20:40   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 19.06.2008
Сообщений: 95
Репутация: 1
По умолчанию Определение нажатой клавиши мыши

Добрый день. Помогите кто может. Есть TDBGridEh, у которого установлена опция dgColumnResize. Теперь когда кликаешь по заголовку (в моем случае TitleButton), все время генериться сообщение от левой кнопки мыши, т.е. в событии OnMouseUp параметр Button равен mbLeft. Мне нужно по нажатию правой кнопки отобразить PopUp Menu (как в Windows, когда кликаешь по заголовкам колонки таблицы, например когда в окне вид - таблица).
Есть какая-нибудь функция API для определения нажатия правой клавиши мыши или как эту ситуацию обойти, т.к. прямой привязки к заголовку нет.
Litvinenko_A вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Рекомендуем супермаркет KNS.ru - dgs-3630- 28tc - билеты на футбол в подарок каждому покупателюпуфик в прихожую купитьda05s220завтра утреннее богослужение будет в крымутеплоход россия круизы на 2024


Старый 25.07.2008, 21:12   #2
while
Неактивный пользователь
 
Аватар для while
 
Регистрация: 21.07.2008
Адрес: Кривой Рог, Украина
Сообщений: 19
Репутация: 6
По умолчанию Ответ: Определение нажатой клавиши мыши

Вот, почему

Код:
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;
В классе-потомке перепиши виртуальный метод MouseDown. Если правая кл. - твой код, если левая - inherited метод (сортировка и т.п.).
Или, что "по кривому" будет, поправь исходник:

Код:
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..
while вне форума
 
Ответить с цитированием Вверх
Старый 08.09.2008, 23:41   #3
Andryshok
Неактивный пользователь
 
Регистрация: 08.09.2008
Сообщений: 17
Репутация: 2
По умолчанию Re: Определение нажатой клавиши мыши

Может глянь какой нибудь компонент в сети типа TMS Grid
Andryshok вне форума
 
Ответить с цитированием Вверх
Старый 05.10.2008, 09:01   #4
TemaAE
Новичок
 
Пол:Мужской
Регистрация: 15.01.2007
Сообщений: 17
Репутация: 1
По умолчанию Re: Определение нажатой клавиши мыши

GetMouseState - Это API
TemaAE вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить событие о нажатой кнопке. 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

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:56. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.15829 секунды с 13 запросами