Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2016, 12:47   #1
GoodLuck To All
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 10
Вопрос DBGrid и выделение правой клавишей мыши


Добро времени суток!
Собственно с вопросом который указан в заголовке разобрался..:

procedure TGlb.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
dbgrid1.SelectedRows.CurrentRowSele cted := not dbgrid1.SelectedRows.CurrentRowSele cted;
end;

.., но вот второй вопрос не даёт покоя и гуглование не помогает.

Как реализовать функцию выделения правой клавишей мыши не по одной а сразу несколько позиций?

Пример - TotalCommander: зажимаем правую клавишу и тянем мышь вниз, выделяются все позиции которые оказались под мышью.

Буду благодарен за помощь в решении! Спасибо!

Последний раз редактировалось GoodLuck To All; 18.09.2016 в 12:50.
GoodLuck To All вне форума Ответить с цитированием
Старый 18.09.2016, 20:57   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
зажимаем правую клавишу
MouseDown
Цитата:
и тянем мышь вниз
MouseMove и ЕГО параметры (просто "возим" | "возим" с зажатыми кнопками мыши | с зажатыми Ctrl Shift | .... )
Цитата:
, выделяются все позиции которые оказались под мышью.
Где сейчас курсор мыши?
Какая строка сейчас в этом самом месте?
Что с ней делать?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 18.09.2016 в 21:02.
evg_m на форуме Ответить с цитированием
Старый 18.09.2016, 22:13   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

1)
Код:
procedure TfrmPriemProc.PopMeniuFonts;
begin
    PopupMenu1.OwnerDraw := True;
    screen.MenuFont.Size := 11;
    screen.MenuFont.Style := [fsBold];
    screen.MenuFont.Name := 'Times New Roman';
end;
2)
Код:
procedure TfrmPriemProc.dbgrdPriemMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
 var
  P: TPoint;
begin
  PopMeniuFonts;// Вызиваю здесь 
  P := GetClientOrigin;
    if Button = mbRight then
    PopupMenu1.Popup(X + P.X + dbgrdPriem.Left,
    Y + P.Y + dbgrdPriem.Top);
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DataGrid Выделение строки правой кнопкой мыши tolmik WPF, UWP, WinRT, XAML 0 27.02.2013 15:20
C# Работа ПРАВОЙ кнопкой мыши back1919 Помощь студентам 0 04.11.2010 15:18
как закрыть правой клавишей мыши pam3ec Помощь студентам 2 22.04.2010 20:30
как закрыть правой клавишей мыши pam3ec Помощь студентам 0 22.04.2010 19:28
Выделение ячейки в DBGrid правой кнопкой мыши RIO БД в Delphi 2 20.08.2009 17:53