Здравствуйте, уважаемые знатоки! У меня вопрос по far.Menu
В первом параметре (Properties) есть возможность указать начальную позицию, но я не нашёл способа указать позицию первого видимого элемента. Я опять что-то не дочитал, или такого действительно нету?
Пояснение.
Есть BreakKeys, при нажатии на которые хочется проделать некую работу, после которой вернуть "всё как было". Есть ли возможность:
(а) Определить первый видимый элемент не по Position и позиции курсора, а прямее?
(б) По окончании обработки вывести список в той же позиции, не применяя последовательности Keys?
Начальное позиционирование списка в far.Menu
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Начальное позиционирование списка в far.Menu
Нету.buniak_a_h wrote: ↑Sat 03 Jun, 2023 16:35 но я не нашёл способа указать позицию первого видимого элемента. Я опять что-то не дочитал, или такого действительно нету?
Можно запоминать верхний элемент при закрытии, а при повторном открытии восстанавливать макросом. Но без Keys.
Всё это конечно не очень прямо. Альтернатива - полноценный диалог с листбоксом. Но придётся самостоятельно повторять всю логику меню.
https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Начальное позиционирование списка в far.Menu
John Doe, спасибо. Жаль. Если б был Shuel - попросил бы добавить параметр. Эх!
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Начальное позиционирование списка в far.Menu
far.Menu это не только макросы, но и апи плагинов
https://t.me/FarManager — Telegram чат
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Начальное позиционирование списка в far.Menu
API-функция Menu, на мой взгляд, имеет существенный дефект, состоящий в том, что любая клавиша, на которую она реагирует (не считаю клавиш навигации), завершает функцию. Правильнее было бы предусмотреть параметр-callback.
Last edited by Shmuel on Sat 03 Jun, 2023 19:18, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Начальное позиционирование списка в far.Menu
Это было бы полезно, но тем не менее не полностью закрыло бы потребность в позиционировании верхнего элемента.
https://t.me/FarManager — Telegram чат
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Начальное позиционирование списка в far.Menu
@buniak_a_h
Вот такой код нашёл в своём макробраузере
Вот такой код нашёл в своём макробраузере
Code: Select all
local Pos --todo Работать не с позицией, а с id макроса
Event { description="MBA internal (preserve list position between launches)";
group="DialogEvent";
uid="C21BDB94-01DB-4624-8BE3-CA9F897E3261";
condition=function(Event,param)
if Event==F.DE_DLGPROCEND and (param.Msg==F.DN_INITDIALOG or param.Msg==F.DN_CLOSE) then
local info = param.hDlg:send(F.DM_GETDIALOGINFO)
return info and info.Id==MBid
end
end;
action=function(Event,param)
if Pos and param.Msg==F.DN_INITDIALOG then
local item = param.hDlg:send(F.DM_LISTGETITEM,1,Pos.SelectPos)
if item and band(item.Flags,F.LIF_HIDDEN)==0 then
param.hDlg:send(F.DM_LISTSETCURPOS,1,Pos)
end
elseif param.Msg==F.DN_CLOSE then
Pos = param.hDlg:send(F.DM_LISTGETCURPOS)
end
end;
}
https://t.me/FarManager — Telegram чат
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Начальное позиционирование списка в far.Menu
Лет 10 назад я это уже пробовал сделать. Модуль MenuEx, дающий все возможности полноценного диалога, при сохранении простоты использования обычного меню.
Планировал перевести на него свои утилиты.
Не выложил, поскольку не всё было доделано.
И такое тоже было предусмотрено.
https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Начальное позиционирование списка в far.Menu
<…>
У меня тоже такой модуль есть (в сообщении по ссылке, возможно, устаревшая версия). Просто надеялся "малой кровью" решить, думал, может прозевал.
Last edited by buniak_a_h on Sun 04 Jun, 2023 00:25, edited 1 time in total.