ACTL_GETCURSORPOS

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

ACTL_GETCURSORPOS

Post by Shmuel »

Запускаю с командной строки 3 раза (см. ниже), каждый раз с небольшим изменением, все 3 раза получаю одинаковый результат. Это баг или так должно быть?
lua: t=far.AdvControl"ACTL_GETCURSORPOS"; far.Show(t.X,t.Y)
lua: Keys"A"; t=far.AdvControl"ACTL_GETCURSORPOS"; far.Show(t.X,t.Y)
lua: Keys"F7"; t=far.AdvControl"ACTL_GETCURSORPOS"; far.Show(t.X,t.Y)
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

ACTL_GETCURSORPOS

Post by DrKnS »

ACTL_GETCURSORPOS отдаёт реальную позицию курсора консоли.
Обновляется она не на каждый чих, а при перерисовке, например, после far.Text()
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

ACTL_GETCURSORPOS

Post by Shmuel »

DrKnS wrote: ACTL_GETCURSORPOS отдаёт реальную позицию курсора консоли.
Из приведенных мной примеров очевидно, что ACTL_GETCURSORPOS отдаёт не реальную (ибо реальная - это то место, где происходит ввод), а запомненную Фаром и, по идее, бесполезную для плагина позицию.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

ACTL_GETCURSORPOS

Post by DrKnS »

Shmuel wrote: запомненную Фаром
Если очевидно, повторю - отдаётся реальная позиция курсора.

Реальная позиция курсора - это не "то место, где происходит ввод", а то, что содержится в CONSOLE_SCREEN_BUFFER_INFO.dwCursorPosition.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

ACTL_GETCURSORPOS

Post by zg »

вот так видно, где курсор в момент вызова ACTL_GETCURSORPOS:
lua: Keys"F7"; t=far.AdvControl"ACTL_GETCURSORPOS"; mf.waitkey(); far.Show(t.X,t.Y)
Post Reply

Return to “Разработка плагинов”