|
|
|
Глюк с определением местоположения курсора мыши на форме
|
|||
|---|---|---|---|
|
#18+
В дельфовой обёртке срабатывает стандартная функция Win API по определению местоположения курсора мыши. В Делфи это обрабатывается стандартным классом TMouse. Почему то в какой то момент времени после определённого кол-ва успешных срабатываний возникает исключение на вызове этой функции в методе этого класса GetCursorPos. Вызов происходит по таймеру в пользовательском классе, в стэке это FUserAlert - просто обыкновенная форма Делфи. Таймер срабатывает не так часто - раз в 20 сек. Вот стэк ошибок: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Как можно заменить вызов этой функции? Или в чём может быть причина сбоя? Может быть кто-нибудь сталкивался с подобным. Использую старую Делфи 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 14:35 |
|
||
|
Глюк с определением местоположения курсора мыши на форме
|
|||
|---|---|---|---|
|
#18+
ну а код ошибки то какой? Вообще в доке по getcursorpos сказано: MSDNThe input desktop must be the current desktop when you call GetCursorPos. По видимому ф-я будет обламываться когда текущий десктоп не явлется input desktop, например активен скринсейвер или UAC prompt. Если успех не критичен проще всего в try .. except завернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 15:16 |
|
||
|
Глюк с определением местоположения курсора мыши на форме
|
|||
|---|---|---|---|
|
#18+
может форма в тот момент удалена/удаляется, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 15:23 |
|
||
|
Глюк с определением местоположения курсора мыши на форме
|
|||
|---|---|---|---|
|
#18+
Илья Кислицынможет форма в тот момент удалена/удаляется, не? Как раз после проверки положения курсора принимается решение удалять форму или нет. Спасибо, действительно нужно в любом случае перед вызовом функции проверки курсора проверять существует ли форма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 16:06 |
|
||
|
Глюк с определением местоположения курсора мыши на форме
|
|||
|---|---|---|---|
|
#18+
лисьну а код ошибки то какой? Вообще в доке по getcursorpos сказано: MSDNThe input desktop must be the current desktop when you call GetCursorPos. По видимому ф-я будет обламываться когда текущий десктоп не явлется input desktop, например активен скринсейвер или UAC prompt. Если успех не критичен проще всего в try .. except завернуть. Огромное спасибо! Но как проверить является ли текущий десктоп инпут десктопом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 16:07 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2040507]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
93ms |
get topic data: |
14ms |
get first new msg: |
7ms |
get forum data: |
5ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 476ms |

| 0 / 0 |
