MenuItem и print?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

MenuItem и print?

Post by Maximus5 »

Из "MenuItem" не работает "mf.print"? mf.msgbox - работает.
Хочется вставить в редактор или поле ввода диалога некий текст.

Пример скрипта MenuItem

Code: Select all

MenuItem {
  area="Editor Dialog";
  menu="Plugins";
  guid="7C9CCEB0-9D34-47DA-998F-17BD0480A422";
  text=function(menu,area) return "Paste text" end;
action=function(OpenFrom,Item)
  mf.print("abcd")
  -- mf.msgbox("abc","def")
end;
}
Ошибка: attempt to yield across C-call boundary

Shmuel
Posts: 6138
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 317 times

Re: MenuItem и print?

Post by Shmuel »

Это нормальное поведение. Мы в плагине, а не в макросе.
Вариантов действия два: либо пользоваться плагиновым API (см. luafar_manual.chm), либо - вызвать макрос, например:
mf.postmacro(mf.print, "abcd")
Второй вариант может не подойти, зависит от обстоятельств.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: MenuItem и print?

Post by Maximus5 »

Спасибо

Shmuel
Posts: 6138
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 317 times

Re: MenuItem и print?

Post by Shmuel »

Дополню, что print относится к т.н. "ограниченным" функциям, которые могут работать только из исполняющегося макроса. Эти ф-ции перечислены в macroapi_manual.ru.chm. Ф-ция msgbox к ограниченным не относится.

Post Reply

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