Как в макросе дождаться окончания работы с меню и узнать результ
Как в макросе дождаться окончания работы с меню и узнать результ
Как в макросе дождаться окончания работы с меню и узнать результат (выбран элемент или нажат Esc, CtrlBreak, клик вне области меню) ?
Собственно пытался средствами малой механизации из ShiftF4 в редакторе сделать выбор кодовой страницы с перезагрузкой файла. Макрос пока , что непонятно:
1) как понять что работает меню ?
Area.Current не помогает. Единственное что нашёл - непустое Menu.Value
2) как 'проиграть' выполнение меню ?
в приведённом макросе проглатываются CtrlBreak и выбор элемента кликом мыши
3) как узнать был ли выбран элемент ?
Собственно пытался средствами малой механизации из ShiftF4 в редакторе сделать выбор кодовой страницы с перезагрузкой файла. Макрос пока , что непонятно:
1) как понять что работает меню ?
Area.Current не помогает. Единственное что нашёл - непустое Menu.Value
2) как 'проиграть' выполнение меню ?
в приведённом макросе проглатываются CtrlBreak и выбор элемента кликом мыши
3) как узнать был ли выбран элемент ?
Re: Far 3: Как теперь работать с макросами?
да в присваивании были остатки от экспериметов, поправил.
но вопросы не снимаются.
в 'попроще' нельзя выбрать 'Default', и будет некорректная работа в случае 'far /e ...'
но вопросы не снимаются.
в 'попроще' нельзя выбрать 'Default', и будет некорректная работа в случае 'far /e ...'
Re: Far 3: Как теперь работать с макросами?
А в far /e и так не работает ShiftF4, да и в любом модальном режиме тоже... в таком режиме вообще макрос не надо запускать:
condition = function() return band(Editor.State, 0x800) == 0 end;
что значит нельзя выбрать дефаулт?
По моему мы не в той теме обсуждаем.
А то что Area в выпадающем списке остаётся Dialog, так это везде так - баг ли это я для себя не решил...
condition = function() return band(Editor.State, 0x800) == 0 end;
что значит нельзя выбрать дефаулт?
По моему мы не в той теме обсуждаем.
А то что Area в выпадающем списке остаётся Dialog, так это везде так - баг ли это я для себя не решил...
SimSU ··· ·· -- ··· ··-
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Выполнение команд FAR в модальном режиме.
Можно ли как нибудь в макросе реализовать такое поведение:
1. Запустить стандартное действие FAR над файлами, например, удаление: Keys("F8")
2. Дождаться его завершения, вместе со всеми диалогами подтверждения, если они были
3. Продолжить исполнение макроса.
?
1. Запустить стандартное действие FAR над файлами, например, удаление: Keys("F8")
2. Дождаться его завершения, вместе со всеми диалогами подтверждения, если они были
3. Продолжить исполнение макроса.
?
- John Doe
- Бюрократ
- Posts: 13855
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: Выполнение команд FAR в модальном режиме.
В таких случаях сейчас принято крутить пустой цикл с подходящим условием.
Например условием может выступать макрообласть (Shell)
Например условием может выступать макрообласть (Shell)
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Выполнение команд FAR в модальном режиме.
Так просто зависает.
Может в цикле нужно что-то вызвать?
Может в цикле нужно что-то вызвать?
- John Doe
- Бюрократ
- Posts: 13855
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: Выполнение команд FAR в модальном режиме.
Да, я неверно выразился.
В цикле должно быть чтение клавиш (mf.waitkey) и их выполнение (Keys)
P.S.
flags="EnableOutput";
P.P.S.
Ранее неоднократно обсуждалось, хотел объединить но не смог придумать хорошее название для темы
В цикле должно быть чтение клавиш (mf.waitkey) и их выполнение (Keys)
P.S.
flags="EnableOutput";
P.P.S.
Ранее неоднократно обсуждалось, хотел объединить но не смог придумать хорошее название для темы
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Выполнение команд FAR в модальном режиме.
Да, я помню, что что-то было, но FAR меняется, может появилось более "прямое" решение...John Doe wrote:Ранее неоднократно обсуждалось, хотел объединить но не смог придумать хорошее название для темы
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Выполнение команд FAR в модальном режиме.
Есть ещё такой вариант, иногда может пригодиться для простых случаев:
Плюс: нормально работает мышь с диалогами.
Минус: код обработчика таймера - это уже не макрос, соответственно, действуют ограничения на вызов определённых функций (Keys, print, etc.). Эти ограничения можно обойти, применив far.MacroPost.
Минус: код обработчика таймера - это уже не макрос, соответственно, действуют ограничения на вызов определённых функций (Keys, print, etc.). Эти ограничения можно обойти, применив far.MacroPost.