Привет
Тут проблемка вырисовалась, оказывается в DBGrid правой кнопкой мыши нельзя выделить запись (выделение остается на предыдущей), как следствие PopUpMenu выскакивает, но нужная запись оказывается не выделенной, а значит я не могу получить нужные данные для открытия других форм.
Единственный способ я вижу в имитации нажатия левой кнопки мыши, но как сделать это кросплатформенно не представляю
Это как нибудь лечится ?
DBGrid, PopUpMenu, правая кнопка мыши, неправильная работа
Модератор: Модераторы
Re: DBGrid, PopUpMenu, правая кнопка мыши, неправильная работа
К сожалению, ничего не могу сказать конкретно по DBGrid'у, только общие мысли:
1) Подобные проблемы обычно лечатся так.
2) Имхо, смысл что-то имитировать был бы в Delphi, где VCL поменять нельзя. В случае Lazarus, я думаю, целесообразнее было бы поработать с исходниками самого DBGrid.
1) Подобные проблемы обычно лечатся так.
2) Имхо, смысл что-то имитировать был бы в Delphi, где VCL поменять нельзя. В случае Lazarus, я думаю, целесообразнее было бы поработать с исходниками самого DBGrid.
Re: DBGrid, PopUpMenu, правая кнопка мыши, неправильная работа
Вылечил так
Подключил модуль MouseAndKeyInput (почемуто пришлось специально указывать путь к модулю в исходниках Lazarus в свойствах проекта)
И имитировал нажатие левой кнопки мыши функцией MouseInput.Click(mbLeft, []);
В событии DBGrid
Подключил модуль MouseAndKeyInput (почемуто пришлось специально указывать путь к модулю в исходниках Lazarus в свойствах проекта)
И имитировал нажатие левой кнопки мыши функцией MouseInput.Click(mbLeft, []);
В событии DBGrid
Код: Выделить всё
procedure TFormMain.DBGrid1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
MouseInput.Click(mbLeft, []);
end; 