Переключение окон (областей)

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
buniak_a_h
Posts: 359
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 38 times
Been thanked: 5 times
Contact:

Переключение окон (областей)

Post by buniak_a_h » Tue 21 Jun, 2016 20:53

Господа! Подскажите пожалуйста, что я делаю не так.
Хочу переключиться на панели. написал такой макрос:

Code: Select all

Macro {
  description="Выбор файла в панели";
  area="Editor"; key="Apps";
  flags="EnableOutput NoPluginPanels";
  action=function()
   local iw, wi=0,far.AdvControl("ACTL_GETWINDOWINFO")
   while wi.Type ~= far.Flags.WTYPE_PANELS do
    if not far.Show('Продолжить?') then return end -- БЕЗ ЭТОЙ СТРОКИ НЕ ПЕРЕКЛЮЧАЕТСЯ!!!
    if iw > 100 then return end -- "страховка"
    far.AdvControl("ACTL_SETCURRENTWINDOW", iw)
    far.AdvControl("ACTL_COMMIT")
    iw=iw+1
    wi=far.AdvControl("ACTL_GETWINDOWINFO")
   end   
  end;
}
Во-первых, без far.Show вообще ничего не происходит
Во-вторых, и с этой строкой переключение иногда не происходит. Закономерности не нашёл... :-(
Без far.AdvControl("ACTL_COMMIT") вообще ничего не происходит...
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
HaRT
Moderator
Posts: 8105
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

Переключение окон (областей)

Post by HaRT » Tue 21 Jun, 2016 21:00

buniak_a_h, прошу внимательнее выбирать, в каком подфоруме создавать новую тему. Эту я перенёс.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

Переключение окон (областей)

Post by Shmuel » Tue 21 Jun, 2016 21:09

Code: Select all

Macro {
  description="Выбор файла в панели";
  area="Editor Viewer"; key="F1";
  action=function()
    for i=1,100 do
      local wi = far.AdvControl("ACTL_GETWINDOWINFO", i)
      if not wi then break end
      if wi.Type == far.Flags.WTYPE_PANELS then
        far.AdvControl("ACTL_SETCURRENTWINDOW", i)
        break
      end
    end   
  end;}

User avatar
sToLp
Posts: 762
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 56 times
Been thanked: 5 times

Переключение окон (областей)

Post by sToLp » Tue 21 Jun, 2016 22:08

Дык вот же ж есть: RecentScreens — переключение между окнами как в MS Windows™ — классный макрос.

buniak_a_h
Posts: 359
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 38 times
Been thanked: 5 times
Contact:

Переключение окон (областей)

Post by buniak_a_h » Tue 21 Jun, 2016 22:14

sToLp wrote:Дык вот же ж: RecentScreens — переключение между окнами как в MS Windows™ — есть классный макрос.
Спасибо, вопрос уже решён.
На самом деле хочу сделать запрос файла (far.Message), а по кнопке - переход в панели, визуальный выбор папки и файла, по CtrlEnter - вставка в диалог, возврат. Пока не знаю, возможно ли переключиться в панели из диалога...
Наверное, такое уже есть (идея просится в реализацию), но искать тут - просто кошмар. Столько всего интересного...
Так что переключение в панели - только часть задачи.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
HaRT
Moderator
Posts: 8105
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

Переключение окон (областей)

Post by HaRT » Tue 21 Jun, 2016 22:35

buniak_a_h wrote: возможно ли переключиться в панели из диалога
Вряд ли. Разве что временно закрыть диалог, выбрать файл и затем перевызвать плагин. Однако в диалоге уже есть через плагин DialogTools.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 359
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 38 times
Been thanked: 5 times
Contact:

Переключение окон (областей)

Post by buniak_a_h » Tue 21 Jun, 2016 23:19

HaRT wrote:
buniak_a_h wrote: возможно ли переключиться в панели из диалога
Вряд ли. Разве что временно закрыть диалог, выбрать файл и затем перевызвать плагин. Однако в диалоге уже есть через плагин DialogTools.
Спасибо, тогда не буду делать. Пока. Хотя то, что я задумал, было бы гибче (как в OpenDialog-е: можно не только выбрать файл но и делать с файлами всё, что позволяет проводник, кроме того можно было бы отметить несколько файлов, и они все попали бы в строку).
Но оно того не стоит. Для красоты, если будет время, доделаю... Идея мне нравилась...
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

Post Reply

Return to “Нужна помощь”