Задействование стандартных окон из скриптов

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
Ultrabyte
Posts: 134
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 12 times
Been thanked: 8 times

Задействование стандартных окон из скриптов

Post by Ultrabyte »

Работает ли функция Viewer() или Editor()
как создать модальный просмотрщик/редактор из области dialog/shell?

Если для диалога, всё просто и успешно выполняются:
far.DialogRun(dialog)
far.DialogFree(dialog)


то для far.Viewer или far.Editor - падают: attempt to call field 'Editor' (a nil value)
Shmuel
Posts: 6938
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 555 times

Ликбез по Lua

Post by Shmuel »

Ultrabyte wrote: Sun 03 Nov, 2024 08:28 Работает ли функция Viewer() или Editor()
В папке %FARHOME%\Encyclopedia есть документация, в данном случае luafar_manual.chm.
Там найдите функции viewer.Viewer и editor.Editor.
Ultrabyte
Posts: 134
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 12 times
Been thanked: 8 times

Ликбез по Lua

Post by Ultrabyte »

Shmuel,
Даже читать не пришлось, сразу вписал viewer.Viewer и заработало!
(это прямь сверх-неочевидные вещи, сколько копья сломаны с этой интернетной-справкой)
Спасибо!

Возможно ли вызвать диалог far.Guids.ViewerSearchId (это в просмотрщике F7-поиск) из любого места, например, Shell ?
Мне хотя бы самого диалога вызвать без выполнения поиска (искать ничего не нужно, нужно само окно "Поиск").
Думал через far.DialogRun(dialog), но в ней, вроде нет указателя на "far.Guids.ViewerSearchId"
Shmuel
Posts: 6938
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 555 times

Ликбез по Lua

Post by Shmuel »

Ultrabyte wrote: Sun 03 Nov, 2024 09:25 Возможно ли вызвать диалог far.Guids.ViewerSearchId (это в просмотрщике F7-поиск) из любого места, например, Shell ?
Такой возможности не предусмотрено.
Не представляю, зачем такое может понадобиться.
User avatar
buniak_a_h
Posts: 4386
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 235 times
Been thanked: 657 times
Contact:

Задействование стандартных окон из скриптов

Post by buniak_a_h »

Shmuel wrote: Sun 03 Nov, 2024 09:29 Не представляю, зачем такое может понадобиться.
А я представляю, извините…
В макросе очень часто хочется вызвать некие «стандартные» действия *диалог копирования с последующим копированием, например). Собственно, сам диалог легко намакросить. А вот последующие действия (копирование, реакция на "файл уже есть") - я до сих пор не знаю как. Причём, я почти уверен, что именно копирование в ФАРе оформлено отдельной процедурой; только интерфейс к ней не опубликован.
Про far.Guids.ViewerSearchId: я делал панельный модуль просмотра таблиц, доступных из _G. В этом модуле был поиск по Alt+F7. А окно демонстрации результатов пришлось делать самому, старался сделать "похожим" на far.Guids.ViewerSearchId. Насколько было бы проще, если бы этот диалог (с указанием back-функций для обработки F3,F4 и т.п.) был бы доступен для вызова как функция. :-) Увы, мечты-мечты…
Last edited by buniak_a_h on Sun 03 Nov, 2024 19:32, edited 2 times in total.
User avatar
HaRT
Moderator
Posts: 11064
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 236 times
Been thanked: 373 times

Задействование стандартных окон из скриптов

Post by HaRT »

 ! Message from: HaRT
Ultrabyte, тема отделена. Впредь прошу более вдумчиво принимать решение, в какую тему писать (или создавать новую).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4386
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 235 times
Been thanked: 657 times
Contact:

Задействование стандартных окон из скриптов

Post by buniak_a_h »

Ultrabyte wrote: Sun 03 Nov, 2024 09:25 сверх-неочевидные вещи
Рекомендую посмотреть состав глобальной таблицы _G (например, используя Lua Explorer Advanced. Там Вы увидите, что Viewer и Editor -- таблицы. Ну а для удобства написания макросов рекомендую мои скрипты LuaComplete Tabbed и Active-Help. Первый позволяет выбрать из всех доступных функций нужную (чтобы не запоминать имена), а второй - получить справку по этой функции (из редактора, командной строки или из диалога, выводимого первым скриптом).
Post Reply

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