Не работает far.Text в редакторе?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не работает far.Text в редакторе?

Post by buniak_a_h »

Следующий макрос (вызываемый по Ctrl+Alt+F4) выводит строку в любой области, кроме Editor:
  1. --local ReadConsole = require"BAX.ReadConsole"
  2.  
  3. local F = far.Flags
  4.  
  5. Macro{
  6.  
  7.   id="75481DCD-A197-4E60-B901-23FD1C096A81";
  8.  
  9.   area="Common";
  10.  
  11.   key="CtrlAltF4";
  12.  
  13.   description="Тест";
  14.  
  15.   action=function(data)
  16.  
  17.     far.Text(20, 10, 10, 'aaaaaaaaaaaaaa')
  18.  
  19.     far.Text()
  20.  
  21.   end;
  22.  
  23. }
Вызов вывода через mf.postmacro положения не исправляет.
Это так и задумано? Или я чего-то не понимаю?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Не работает far.Text в редакторе?

Post by Shmuel »

Насколько мне помнится, по окончанию исполнения любого макроса в редакторе или вьювере производится принудительная их перерисовка.
В вашем случае текст можно вывести через far.Timer.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не работает far.Text в редакторе?

Post by buniak_a_h »

Shmuel wrote: Mon 03 Oct, 2022 15:19 по окончанию исполнения любого макроса в редакторе или вьювере производится принудительная их перерисовка.
Поэтому я экспериментировал с mf.postmacro, Не помогло. Ну, попробую через таймер, спасибо.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Не работает far.Text в редакторе?

Post by Shmuel »

mf.postmacro - это вызов макроса. Поэтому и не помогло.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не работает far.Text в редакторе?

Post by buniak_a_h »

Shmuel,
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Не работает far.Text в редакторе?

Post by Shmuel »

t:Close() -- через двоеточие
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не работает far.Text в редакторе?

Post by buniak_a_h »

Shmuel wrote: Mon 03 Oct, 2022 15:40 t:Close() -- через двоеточие
Ох, позор на мою лысую голову! Знал, да забыл (я учил!)
Увы! Вишенка: если не убивать таймер, то надпись мигает, но не выводится постоянно
А если убить, то надпись, наверно, выводится, но сразу стирается.
Last edited by buniak_a_h on Mon 03 Oct, 2022 15:48, edited 1 time in total.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Не работает far.Text в редакторе?

Post by Shmuel »

buniak_a_h wrote: Mon 03 Oct, 2022 15:45 А если убить, то надпись, наверно, выводится, но сразу стирается.
У меня не стирается, пока не двинешь курсор, например.
То же и в панелях. Так работает far.Text.
Чтобы текст не стирался, можно отлавливать событие перерисовки и в нём выводить far.Text. Тогда можно и без таймера обойтись.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не работает far.Text в редакторе?

Post by buniak_a_h »

Shmuel wrote: Mon 03 Oct, 2022 15:54 У меня не стирается, пока не двинешь курсор, например
На голом ФАРе - не стирается. Под конему - увы.
Shmuel wrote: Mon 03 Oct, 2022 15:54 Чтобы текст не стирался, можно отлавливать событие перерисовки и в нём выводить far.Text
Попробовал. Под конему надпись быстро-быстро мигает. Без конему - не видна совсем.
Жаль. Хотел автодополнение сделать не как у плагина (дозапись в строку), а выводить чисто на экран без "порчи" текста. :-(
Last edited by buniak_a_h on Mon 03 Oct, 2022 16:36, edited 1 time in total.
User avatar
SUSim
Posts: 1637
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Не работает far.Text в редакторе?

Post by SUSim »

В конему 170819 не стирается (не так часто), я по этому и не обновляюсь из-за своего макроса
Editor_WordComplete.lua
SimSU ··· ·· -- ··· ··-
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не работает far.Text в редакторе?

Post by buniak_a_h »

SUSim, спасибо, значит это не мои глюки. Но, увы, это - не выход (представьте, как бы в инструкции звучало «версия конему не позднее 170819»).
Если б можно было запретить перерисовку экрана, как для диалогов DM_ENABLEREDRAW)! Но для редактора я не нашёл такого… :sad:
User avatar
zg
zero-gravity
Posts: 6034
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Не работает far.Text в редакторе?

Post by zg »

buniak_a_h wrote: Mon 03 Oct, 2022 16:34Жаль. Хотел автодополнение сделать не как у плагина (дозапись в строку), а выводить чисто на экран без "порчи" текста. :-(
диалог сделайте без тени в одну строку.
User avatar
buniak_a_h
Posts: 4260
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не работает far.Text в редакторе?

Post by buniak_a_h »

zg wrote: Wed 05 Oct, 2022 22:00 диалог сделайте без тени в одну строку.
Да я уж думал. Я так понимаю, что диалог должен быть немодальным (иначе кнопочки до редактора не дойдут). И в то же время он должен быть Always on top, а это не реализовано. Я не знаю, как эту коллизию разрешить.
User avatar
zg
zero-gravity
Posts: 6034
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Не работает far.Text в редакторе?

Post by zg »

buniak_a_h wrote: Wed 05 Oct, 2022 22:48 иначе кнопочки до редактора не дойдут
что-то типа такого никто не мешает сделать:

Code: Select all

if msg==F.DN_INPUT then
  editor.ProcessInput(nil,param2)
  return false
end
Post Reply

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