Эмуляция клавиш AltHistory в стандартной истории

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Эмуляция клавиш AltHistory в стандартной истории

Post by John Doe »

Latest post of the previous page:

Не думаю что DM_LISTSETTITLES вам поможет.
Дело в том, что пока фильтр активен - заголовок вообще не отображается.

В первых версиях я использовал такой фокус (в момент открытия меню):

Code: Select all

      mmode(1,0)
      local k = mf.waitkey() --trick to keep menu title
      Menu.Filter(set,1)
      Keys(k)
Это позволяет сохранить заголовок до первого нажатия клавиши.
Однако ввиду недоработок в фаре этот способ не всегда хорошо работает.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Эмуляция клавиш AltHistory в стандартной истории

Post by John Doe »

Ещё можно попробовать такой трюк
  1. local F = far.Flags
  2.  
  3. Keys"F11"
  4.  
  5. local s = far.SaveScreen()
  6.  
  7. Menu.Filter(0,1)
  8.  
  9. far.RestoreScreen(s)
  10.  
  11. local hDlg = far.AdvControl(F.ACTL_GETWINDOWINFO).Id
  12.  
  13. far.SendDlgMessage (hDlg, F.DM_ENABLEREDRAW, 0)
  14.  
  15. far.Timer (2000, function(timer)
  16.  
  17.   timer:Close()
  18.  
  19.   if hDlg==far.AdvControl(F.ACTL_GETWINDOWINFO).Id then
  20.  
  21.     far.SendDlgMessage (hDlg, F.DM_ENABLEREDRAW, 1)
  22.  
  23.   end
  24.  
  25. end)
Тут заголовок сохраняется 2 секунды.
User avatar
HaRT
Moderator
Posts: 10865
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Эмуляция клавиш AltHistory в стандартной истории

Post by HaRT »

Спасибо!
DV wrote: * нажатие Ctrl+PgUp переходит в указанную папку (из истории папок или просмотра/редактирования) и позиционирует на имя файла из истории просмотра/редактирования;
Тут есть некоторые несоответствия AltHistory:
* насколько я помню, при переходе из истории папок по [b][i]CtrlPgUp[/i][/b] AltHistory переходит на выбранную папку, а не в неё. Для перехода в папку есть [b][i]Enter[/i][/b] и [b][i]CtrlPgDn[/i][/b];
* в истории команд, если запускаемый файл задан полным путём, по [b][i]CtrlPgUp[/i][/b] следует переходить на него; если же нет, то ничего не делать (сейчас переходит в начало истории).

Сложно ли это доработать?
Фар есть инструмент, а не нянька. © 2009 DrKnS
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Эмуляция клавиш AltHistory в стандартной истории

Post by DV »

Гляну при случае. (Месяца три назад после переустановки системы откатился на свою старую "сборку" FAR2, да так пока на ней и остался.)
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Эмуляция клавиш AltHistory в стандартной истории

Post by DV »

HaRT wrote:Сложно ли это доработать?
Сделано - обновил макрос на первой странице темы.
User avatar
HaRT
Moderator
Posts: 10865
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Эмуляция клавиш AltHistory в стандартной истории

Post by HaRT »

DV wrote: Сделано
Спасибо!
Пара неточностей:
* Для папок (которые оказались в истории команд после запуска по [i][b]ShiftEnter[/b][/i]) переход по [i][b]CtrlPgUp[/b][/i] тоже почему-то происходит в папку, а не на неё — независимо от наличия бэкслэша в конце.
* Если полный путь запускавшегося файла/папки заключен в кавычки (из-за пробелов и т.п.), то [i][b]CtrlPgUp[/b][/i] не срабатывает.
Фар есть инструмент, а не нянька. © 2009 DrKnS
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Эмуляция клавиш AltHistory в стандартной истории

Post by DV »

HaRT wrote:Пара неточностей
Исправлено :)
User avatar
HaRT
Moderator
Posts: 10865
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Эмуляция клавиш AltHistory в стандартной истории

Post by HaRT »

DV wrote: Исправлено
Спасибо!
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10865
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Эмуляция клавиш AltHistory в стандартной истории

Post by HaRT »

Кстати, вот что пишет LuaCheck:

Code: Select all

unused function 'GetHistoryMenuId'
value assigned to variable 'dir' is unused
unused function 'Menu_ReTitle'
Т.е. ничего критичного не обнаруживается. :)
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Эмуляция клавиш AltHistory в стандартной истории

Post by John Doe »

@DV
Тег [code2] надо заменить на актуальный: http://forum.farmanager.com/viewtopic.p ... 81#p124481
Post Reply

Return to “Обсуждение макросов”