А суть вопроса в следующем:
Я скачал класс для работы с треем v0.9, А.Щербакова. Какое-то время он работал корректно, но потом(все затаили дыхание и ждут моего ламерского финта) - я ничего в этом классе, да и в событии cTray_OnIcon(MouseButton as Integer) ничего про сам трей не менял, хотя как раз оно-то тут и не при чём.
Долго ли, коротко, смотрю - программа не реагирует на щелчки по иконке, и это если учесть, что всё остальное просто летает, и не глючит, даже тот же злополучный cTray. Так или иначе, нашёл корень зла - CallEvent(X As Single, Y As Single). Это который определяет, куда щёлкнули, и какой кнопкой. Странные вещи в следующем: если событие на иконке в трее(наведение, щелчек, да что угодно), а не на форме - то сторка
- Код: Выделить всё
MouseButton = (X And &HFF) / Screen.TwipsPerPixelX
всегда возвращает 0(TrayIcon_Mouse_NoButton). X обычно при этом равен 512, &HFF = *Не скажу - байан! кто не знает - тот простит *, а TwipsPerPixelX = 15. Конкретно - X And &HFF = 0, конкретно в данной строке, хотя я тестил в while от 1 до тысячи, и вроде там нулей не было... хз.
Естественно, после этого в процедуру идёт ноль, а это не очень-то хорошо - ведь я же туда ещё и нажимаю!
Просьба - объясните, как так произошло, сверял с оригинальной процедурой - нифига не изменилось, а возвращать ни с того ни с сего стало 0. Что ещё могло повлиять... и...
...и главное, как эту байду справадить и вернуть первоначальный эффект? Спасибо.