Правая кнопка мыши на изображении отключает события первого щелчка мыши за пределами изображения
У меня есть приложение Delphi с элементом управления TImgView32 (часть Graphics32). Я передаю событие перемещения мыши и нажатия мыши, и это работает. Проблема в том, что всякий раз, когда я использую правую кнопку мыши на изображении, когда я отпускаю правую кнопку мыши (все еще в пределах моего изображения - я не выходил за пределы изображения, прежде чем отпустить)- левая кнопка мыши не запускает кнопку, флажок, сворачивает или любые другие элементы управления. Это делает дополнительное событие нажатия мыши в TImgView32 до щелчка во второй раз. Как я могу получить щелчки мыши, чтобы перейти к правильному управлению, когда мышь больше не отображается на моем изображении, не щелкнув дважды? Я скомпилировал как XE3, так и 2007, и результат был одинаковым.
2 ответа
Это оказалось ошибкой в стороннем компоненте, а не в Delphi или его библиотеке VCL. Отчет об ошибке отправлен. Если события мыши фиксируются слоем, убедитесь, что просмотрщик изображений или изображений сбрасывает "MouseCapture", но если события нужны только для изображений, а не слоев, установите для Layers.MouseEvents значение false в качестве обходного пути.
В качестве быстрого и грязного исправления вы можете просто смоделировать щелчок левой кнопкой мыши в конце обработки события правой кнопки мыши?