Копирование содержимого меню и списков

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

Копирование содержимого меню и списков

Post by John Doe » Tue 07 Jul, 2015 17:18

По мотивам http://forum.farmanager.com/viewtopic.p ... 13#p131013
  • CtrlAltShiftIns — копировать в буфер обмена элемент под курсором

    CtrlAltShiftC — копировать в буфер обмена все элементы списка
  1. local function isList()
  2.   return not Area.Dialog or Dlg.ItemType==far.Flags.DI_LISTBOX
  3. end
  4.  
  5. Macro { description="Copy list's item to clipboard";
  6.   area="Menu MainMenu UserMenu Dialog"; key="CtrlAltShiftIns";
  7.   id="01B81353-4AE6-41A9-8DAE-B37CF1718EBE";
  8.   condition=isList;
  9.   action=function()
  10.     far.CopyToClipboard(Menu.Value)
  11.   end;
  12. }
  13.  
  14. Macro { description="Copy all list's items to clipboard";
  15.   area="Menu MainMenu UserMenu Dialog"; key="CtrlAltShiftC";
  16.   id="2DD088FB-C840-43A3-9D58-B9B8C03D5174";
  17.   condition=isList;
  18.   action=function()
  19.     local hDlg = far.AdvControl("ACTL_GETWINDOWINFO").Id
  20.     if hDlg==0 then Keys"AKey"; return end --HMenu
  21.     local list = far.GetDlgItem(hDlg,1)[6]
  22.     local txt = {}
  23.     for i=1,#list do
  24.       txt[i] = list[i].Text:gsub("^&","")
  25.     end
  26.     far.CopyToClipboard(table.concat(txt,"\n"))
  27.   end;
  28. }
Last edited by John Doe on Fri 06 Oct, 2017 07:49, edited 1 time in total.
Reason: descriptions

Shmuel
Posts: 5931
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 238 times

Копирование содержимого меню

Post by Shmuel » Tue 07 Jul, 2015 17:24

John Doe wrote: Однако есть загвоздка: назначив такие общие макросы мы потеряем возможность обрабатывать CtrlIns и CtrlC в диалогах/меню...
Назначить на другие сочетания, например, добавить Alt.

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

Копирование содержимого меню

Post by HaRT » Tue 07 Jul, 2015 18:15

Спасибо!
Из списка сообщений luacheck почему-то не копируются восклицательные знаки из начала элементов списка…
Shmuel wrote: Назначить на другие сочетания, например, добавить Alt.
Я себе назначил на [b]CtrlAltShiftC[/b] и [b]CtrlAltShiftIns[/b] соответственно.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12538
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 240 times

Копирование содержимого меню

Post by John Doe » Tue 07 Jul, 2015 18:24

HaRT wrote: Из списка сообщений luacheck почему-то не копируются восклицательные знаки из начала элементов списка…
Потому что они не являются частью текста.
(я их вообще для себя добавляю, luacheck ничего такого не выдаёт)

User avatar
John Doe
Бюрократ
Posts: 12538
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 240 times

Копирование содержимого меню

Post by John Doe » Wed 08 Jul, 2015 10:52

Обновил макросы. Теперь работают в любых меню и списках.

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

Копирование содержимого меню и списков

Post by HaRT » Wed 08 Jul, 2015 11:04

John Doe wrote: Теперь работают в любых меню и списках.
Спасибо!
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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