Cryogen2003
![](http://forum.ru-board.com/board/avatars/hobo.gif)
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Dronton2 Полночи провел над поиском, все таки решил проблему. А после решения уже нашел и виновника. Виновник - включенный стандартный оптимизатор в Дельфях. Если его убрать, то все работает как надо. Я пока не решил нужен ли он мне или убрать, но на всякий случай напишу решение для других. Проблема заключалась в том, что не создавался TcxTimer во второй и последующий разы (в девках оказывается на все MouseMove и MouseLeave над их компонентами вешают таймер из WinApi, который раз в 1/100 секунду запускается и проверяет нужно ли запускать MouseLeave на компоненте). В девках очень часто в их модулях есть такая интересная вещь: они делают не переменную, а функцию к "f" переменной. А в функции проверяют все что им нужно (обычно это создан класс или нет), если не что-то не выполнено, то все выполняют, а если все выполнено, то просто возвращают переменную "f". И судя по всему во второй и следующие разы, когда создавать ничего не надо, оптимизатору сносит крышу и он бывает такую фигню возвращает и из-за этого в конкретном этом случае Windows.CreateTimer просто тупо возвращает 0. Итог, решение от меня, помидорами если что, то можно кидать Код: исправление работы cxTimer модуль cxClasses в initialization добавить cxTimerWindow := TcxTimerWindow.Create; в finalization заменить FreeAndNil(FcxTimerWindow); на FreeAndNil(cxTimerWindow); удалить функцию cxTimerWindow в переменных заменить FcxTimerWindow: TcxTimerWindow; на cxTimerWindow: TcxTimerWindow; Смысл во всем избавиться от функции cxTimerWindow и заменить ее на обычную переменную cxTimerWindow |
---------- Холодильники мы |
|