Сабж
Которая, похоже, заключается в том что он считает что все элементы таблицы являются пунктами меню. Неудобно.
Иллюстрация: Берем вот , запускаем его в каком-нить диалоге а потом там где диалога нет (в панелях, редакторе и т.д.)
При втором запуске видно что происходит обращение к нулю за пределами числа элементов
Предложение: считать концом элементов любой элемент таблицы "menu items" не являющийся таблицей
Некорректность в far.Menu
Некорректность в far.Menu
Shmuel, как я понял, ТС, не желая зачищать таблицу нормально, просто обнуляет первый элемент. В результате получает нечто вроде
JouriM, процитирую руководство:
А надёжнее - корректно вычищать все элементы меню.
Code: Select all
local items = {
nil,
{text="line2"}
}
far.Menu({Title="test"},items)
То есть, это как раз корректность, заключающаяся в том, что far.Menu работает в точности так, как задумано и описано. Что же до макроса, то проще всего перенести определение m:Items: table (array of menu items)
А надёжнее - корректно вычищать все элементы меню.
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Некорректность в far.Menu
В Lua обычно вместо чистки таблицы просто заводят новую, а о старой сборщик мусора позаботится.
Я в скрипте этом не разбирался, нет ни времени, ни желания. Когда человек хочет сделать репорт, это его обязанность предоставить короткий внятный пример, по возможности не содержащий ничего, к делу не относящегося.