DBGrid, PopUpMenu, правая кнопка мыши, неправильная работа

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

DBGrid, PopUpMenu, правая кнопка мыши, неправильная работа

Сообщение Ism » 13.05.2011 17:24:14

Привет

Тут проблемка вырисовалась, оказывается в DBGrid правой кнопкой мыши нельзя выделить запись (выделение остается на предыдущей), как следствие PopUpMenu выскакивает, но нужная запись оказывается не выделенной, а значит я не могу получить нужные данные для открытия других форм.

Единственный способ я вижу в имитации нажатия левой кнопки мыши, но как сделать это кросплатформенно не представляю

Это как нибудь лечится ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: DBGrid, PopUpMenu, правая кнопка мыши, неправильная работа

Сообщение Odyssey » 13.05.2011 18:44:00

К сожалению, ничего не могу сказать конкретно по DBGrid'у, только общие мысли:
1) Подобные проблемы обычно лечатся так.
2) Имхо, смысл что-то имитировать был бы в Delphi, где VCL поменять нельзя. В случае Lazarus, я думаю, целесообразнее было бы поработать с исходниками самого DBGrid.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: DBGrid, PopUpMenu, правая кнопка мыши, неправильная работа

Сообщение Ism » 13.05.2011 19:28:43

Вылечил так

Подключил модуль MouseAndKeyInput (почемуто пришлось специально указывать путь к модулю в исходниках Lazarus в свойствах проекта)

И имитировал нажатие левой кнопки мыши функцией MouseInput.Click(mbLeft, []);

В событии DBGrid

Код: Выделить всё
procedure TFormMain.DBGrid1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  MouseInput.Click(mbLeft, []);
end;   
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44

Рейтинг@Mail.ru