Слово WIN-MOVER. Баг ?

Обсуждение программ nnCron и nnCron LITE

Слово WIN-MOVER. Баг ?

Postby Teapot » Wed, 09 Dec 2015, 19:06

Windows 7 ultimate x64.
nncron193b13.exe.

См. https://youtu.be/KXhbVwRoftQ
Видно, что окно AkelPad активизируется, но не двигается.
А для WIN-MOVER: вообще описанный в справке синтаксис не работает, не воспринимает параметры :(
Teapot
 
Posts: 3
Joined: Wed, 09 Dec 2015, 18:48

Re: Слово WIN-MOVER. Баг ?

Postby VoidVolker » Wed, 09 Dec 2015, 20:54

Teapot wrote:Видно, что окно AkelPad активизируется, но не двигается.

Все правильно, так и должно быть: там же сначала активируется акел-пад, а через 300 мс двигается активное окно. А активное окно именно в этот момент времени - консоль ннкрона (даже через 300 мс). Если нужно двигать именно акел-пад, то нужно ждать несколько больше, чем 300 мс, поскольку код выполняется после нажатия на энтер, а не после его отпускания. Кроме того, для активации окна ОС тоже необходимо некоторое время. Т.о. надо сделать паузу больше, перенести её в начало строки и добавить вторую паузу:
Code: Select all
2000 PAUSE S" AkelPad" WIN-ACTIVATE 500 PAUSE 10 0 WIN-MOVER

Teapot wrote:А для WIN-MOVER: вообще описанный в справке синтаксис не работает, не воспринимает параметры

WIN-MOVER: только для режима компиляции, в режиме интерпретации следует применять WIN-MOVER или делать обертку для WIN-MOVER:.
Code: Select all
: test WIN-MOVER: 100 100 ;
test

nnCron Manual > Работа с программой > Инструменты > Console
Работая с форт-консолью не забывайте, что большинство предопределенных префиксных слов в nnCron предназначены для периода компиляции, а не периода исполнения. Компиляция каждой задачи автоматически происходит в момент перечитывания кронтаба. Значит, такие слова можно компилировать, но нельзя исполнять в форт-консоли.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Слово WIN-MOVER. Баг ?

Postby Teapot » Wed, 09 Dec 2015, 23:42

Спасибо за разъяснения. Сделал как Вы написали. Получается. Но не всегда :(
Дело в том, что за время этой, введенной Вами паузы, фокус успевает перехватить совсем другое окно :(
Оно и двигается :(

Как бы так сделать, чтобы двигать указанное по hwnd Окно ? Это возможно в nnCron ? Другие программы именно так и двигают окна !
Teapot
 
Posts: 3
Joined: Wed, 09 Dec 2015, 18:48

Re: Слово WIN-MOVER. Баг ?

Postby VoidVolker » Thu, 10 Dec 2015, 00:42

Code: Select all
: HWIN-MOVE   \ ( x y hwnd -- )
    >R >R >R
    0x1 0 0 R> R> SWAP 0 R> SetWindowPos DROP
;

: HWIN-MOVER   \ ( +x +y hwnd -- )
    DUP >R
    WIN-RECT 2SWAP 2DROP SWAP D+
    >R >R
    0x1 0 0 R> R> SWAP 0 R> SetWindowPos DROP
;
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests