Latest post of the previous page:
И ещё можно попробовать сделать сам макрос похитрее, например илиКак погасить панели из плагина?
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Вроде бы не помогает. В панели переключался SetCurrentAt(0), код всегда зовет ACTL_COMMIT:
Code: Select all
void Window::SetCurrentAt(int index)
{
if (!Info.AdvControl(&MainGuid, ACTL_SETCURRENTWINDOW, index, 0))
throw gcnew InvalidOperationException(__FUNCTION__ " failed, index = " + index);
Info.AdvControl(&MainGuid, ACTL_COMMIT, 0, 0);
}
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Спасибо. Я уже решил отказаться от переключения из редактора в панели. Пользователи попросят, тогда другое дело. В легальном же АПИ по управлению видимостью панелей интерес все равно есть в любом случае.И ещё можно попробовать сделать сам макрос похитрее
- John Doe
- Бюрократ
- Posts: 13860
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Как погасить панели из плагина?
Странно, мне помогает (luafar):NightRoman wrote:Вроде бы не помогает. В панели переключался SetCurrentAt(0), код всегда зовет ACTL_COMMIT:
Code: Select all
far.AdvControl ("ACTL_SETCURRENTWINDOW", 1)
far.AdvControl ("ACTL_COMMIT")
far.MacroPost ("Keys 'CtrlO'")
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Рад. Но мне не помогает (FarNet). Условия не совсем одинаковые, вероятно. Тем более, что после этого для воспроизведения моего сценария надо еще сразу и диалог запустить. И вот при этом диалоге на сцене Фара панели должны быть погашены.
- John Doe
- Бюрократ
- Posts: 13860
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Как погасить панели из плагина?
Ну мы же не можем обо всех условиях сразу поговорить.NightRoman wrote:Условия не совсем одинаковые, вероятно.
В данном случае я утверждаю, что сразу после ACTL_COMMIT у вас как и у меня панели должны быть доступны.
Если нет, то либо Энциклопедия нагло врёт, либо проблема в фаре (и о ней следует доложить на багтрекере), либо баг прячется где-то у вас, возможно в самом неожиданном месте, напрямую не связанном с предметом обсуждения.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
А где энциклопедия врет? У меня переключение происходит, как и надо. Она не врет. Гашение панелей "хаком" в этом нетривиальном сценарии дальше не происходит. Непонятно на что тут жаловаться. Поэтому я жалуюсь на отсутствие АПИ по гашению панелей. Если бы оно было и не работало, то было бы ясно на что жаловаться.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Видимо, надо поместить виш на мантис. Но мне практически важно знать, насколько это в долгий ящик. А может это вообще нельзя в Фаре осуществить?
Если это все надолго, то буду думать над обходными путями. Если не очень надолго, то пока можно и подождать с продвинутыми сценариями. В простых уже вроде работает, хоть и некрасивыми приемами.
Потому и жду ответа от разработчиков по этой теме. Потом уж и на мантис пойду.
Если это все надолго, то буду думать над обходными путями. Если не очень надолго, то пока можно и подождать с продвинутыми сценариями. В простых уже вроде работает, хоть и некрасивыми приемами.
Потому и жду ответа от разработчиков по этой теме. Потом уж и на мантис пойду.
- John Doe
- Бюрократ
- Posts: 13860
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Как погасить панели из плагина?
Если вызванный далее макрос запускается почему-то не в контексте панелей, то вполне возможно это баг.NightRoman wrote:Гашение панелей "хаком" в этом нетривиальном сценарии дальше не происходит.
Проверить надо на более тривиальных сценариях, да.
Иначе не разобраться на каком этапе происходит сбой.
P.S.
Пока что создаётся впечатление что что-то не так с вашей системой перевызова плагина.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Спасибо за участие и желание помочь, но это скорей уже мешает основной теме. Так или не так с моей системой перевызова плагина - вопрос отдельный и интересный. И спорный. Но не хотелось бы, чтобы он забивал основной вопрос темы про АПИ.Пока что создаётся впечатление что что-то не так с вашей системой перевызова плагина.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Поместил пожелание на мантис
http://bugs.farmanager.com/view.php?id=2611
Надеюсь на отклик разработчиков. Спасибо.
http://bugs.farmanager.com/view.php?id=2611
Надеюсь на отклик разработчиков. Спасибо.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Как погасить панели из плагина?
Юз-кейс пока не совсем очевиден. Почему панели не может погасить пользователь?NightRoman wrote:Юз-кейс. Новый режим "Command console" в PowerShellFar. Надо погасить панели и в цикле запускать диалог замаскированный под командную строку.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Лишняя операция для пользователя. Это ему надо делать всегда. Так как если не погасит и войдет в режим консоли, то будет некрасиво и нерабоче, панели будут мешать, и чтобы погасить, надо будет уже обязательно выйти из режима консоли (так как это диалог в цикле, а не панели), погасить панели и снова войти. Это нехороший дизайн. Поэтому плагин сам гасит панели при входе в режим консоли, тем самым избавляя пользователя и от лишней операции, и от ошибки входа с невыключенными панелями.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Как погасить панели из плагина?
Лишняя операция для пользователя - это F11 Down Down Down...., поэтому, как правило, плагины вызываются макросом. Не вижу сложности добавить в макрос гашение панелей.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Это называется думать за пользователя, нет? А вот даже я (вероятно, самый частый пользователь этой фичи) не вызываю эту консоль макросом. Зачем же другие пользователи, которые еще реже могут пользоваться, будут вешать это на макрос? Не вижу резона создавать макрос.
Аргумент странный. Но спорить не буду, разработчикам может быть видней.
Аргумент странный. Но спорить не буду, разработчикам может быть видней.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Как погасить панели из плагина?
Но все же не буду предлагать это пользователям - самим забить в макрос гашение панелей, а то иначе может работать плохо. Не хочется такое делать на публику. Для себя бы можно было так сделать, да.