OberonCore
https://forum.oberoncore.ru/

Временная горячая клавиша
https://forum.oberoncore.ru/viewtopic.php?f=1&t=2529
Страница 1 из 1

Автор:  Евгений Темиргалеев [ Понедельник, 05 Апрель, 2010 17:20 ]
Заголовок сообщения:  Временная горячая клавиша

Изредка бывает нужно какую-то команду выполнять много раз для какой-то конкретной работы.

Info->Menus
открыли нужное меню, повесили команду на свободную кнопку (например, F7)
Info->Update Menus
закрыли изменённое описание меню без сохранения
пользуемся кнопкой до конца сеанса работы с ББ

Вроде бы всё очевидно, но сам, например, сразу не додумался. Поначалу пытался подобрать для команды постоянную клавишу.

Автор:  Info21 [ Понедельник, 05 Апрель, 2010 18:12 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Евгений Темиргалеев писал(а):
Info->Update Menus
закрыли изменённое описание меню без сохранения
пользуемся кнопкой до конца сеанса работы с ББ
Интересно.
У меня было твердое убеждение, основанное на опыте, что нужно обязательно сохранить менюшный документ.

Автор:  Илья Ермаков [ Понедельник, 05 Апрель, 2010 23:30 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Вообще-то это как бы хак, основанный на особенностях кэширования открытых файлов, и т.п. Вроде бы?

Автор:  Евгений Темиргалеев [ Вторник, 06 Апрель, 2010 00:16 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Это документированное поведение
Views docu писал(а):
PROCEDURE Old (ask: BOOLEAN; VAR loc: Files.Locator; VAR name: Files.Name; VAR conv: Converters.Converter): View
This procedure looks up a file, reads in the document in this file, and then returns the root view of this document. If the file is already opened in a window, the root view of this window's document is returned instead of reading the file...

Автор:  Иван Горячев [ Вторник, 06 Апрель, 2010 01:03 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Т.е. если я открыл документ, изменил его - то открыть следом оригинальный документ я не смогу? :shock:

Автор:  Александр Ильин [ Вторник, 06 Апрель, 2010 04:01 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Иван Горячев писал(а):
Т.е. если я открыл документ, изменил его - то открыть следом оригинальный документ я не смогу? :shock:
В некотором смысле это и правильно. Недавно проблема обсуждалась на форуме Notepad++. Если вы дважды открыли один файл и обе копии редактируете, то рискуете потерять часть изменений. В ББ один и тот же файл можно открыть только "правильным" образом. Если нужна копия оригинала, лучше сделать копию на диске и её открыть.

Автор:  Info21 [ Вторник, 06 Апрель, 2010 10:14 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Илья Ермаков писал(а):
Вообще-то это как бы хак, основанный на особенностях кэширования открытых файлов, и т.п. Вроде бы?
Не думаю.

Автор:  Иван Горячев [ Вторник, 06 Апрель, 2010 11:29 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Александр Ильин писал(а):
В некотором смысле это и правильно.

Ну не знаю... Я часто открываю оригинал несколько раз, по-разному редактирую и сохраняю под разными именами. Или не сохраняю вообще - по ситуации. Лучше бы копии открывать как новые документы - тогда бы при попытке сохранения выскакивал "Save As..."

Автор:  Евгений Темиргалеев [ Вторник, 06 Апрель, 2010 12:29 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Иван Горячев писал(а):
Т.е. если я открыл документ, изменил его - то открыть следом оригинальный документ я не смогу? :shock:
Иван Горячев писал(а):
Лучше бы копии открывать как новые документы - тогда бы при попытке сохранения выскакивал "Save As..."
Оригинал можно открыть через OpenBrowser. Перевести в режим редактирования. Есть только одно но: "Save As..." никто спрашивать не станет - нужно самому нажимать, а "Save" вообще не доступен (т.к. Open для Browse) - поэтому если закрыл, то изменения тю-тю.

Автор:  Евгений Темиргалеев [ Вторник, 06 Апрель, 2010 12:30 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Info21 писал(а):
У меня было твердое убеждение, основанное на опыте, что нужно обязательно сохранить менюшный документ.
Насчёт компиляции КП-х модулей такое убеждение было?

Автор:  Info21 [ Вторник, 06 Апрель, 2010 12:37 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Евгений Темиргалеев писал(а):
Info21 писал(а):
У меня было твердое убеждение, основанное на опыте, что нужно обязательно сохранить менюшный документ.
Насчёт компиляции КП-х модулей такое убеждение было?
Такая аналогия мне в голову как-то не пришла.

Автор:  Иван Горячев [ Вторник, 06 Апрель, 2010 15:33 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Евгений Темиргалеев писал(а):
Оригинал можно открыть через OpenBrowser.

Нельзя, бо StdCmds.OpenBrowser вызывает StdApi.OpenBrowser -> Views.OldView -> Views.Old.
Можно использовать Converters.Export и приводить полученный объект к Views.View, как это сделано в HostCmds.Open

Автор:  Евгений Темиргалеев [ Вторник, 06 Апрель, 2010 16:57 ]
Заголовок сообщения:  Re: Временная горячая клавиша

А Вы пробовали? :)
Код:
   PROCEDURE StdApi.OpenBrowser* (file, title: ARRAY OF CHAR; OUT v: Views.View);
      ...   loc.res := 77; v := Views.OldView(loc, name); loc.res := 0; ...
Код:
   PROCEDURE (h: ViewHook) StdDialog.OldView (loc: Files.Locator; name: Files.Name;...
   ...   IF loc.res # 77 THEN
         w := Windows.dir.First(); c := conv; ...

Автор:  Иван Горячев [ Вторник, 06 Апрель, 2010 22:42 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Евгений Темиргалеев писал(а):
А Вы пробовали? :)
Код:
   PROCEDURE StdApi.OpenBrowser* (file, title: ARRAY OF CHAR; OUT v: Views.View);
      ...   loc.res := 77; v := Views.OldView(loc, name); loc.res := 0; ...
Код:
   PROCEDURE (h: ViewHook) StdDialog.OldView (loc: Files.Locator; name: Files.Name;...
   ...   IF loc.res # 77 THEN
         w := Windows.dir.First(); c := conv; ...

И? В StdDialog.OldView как раз и идёт сначала перебор открытых окон, а вот если не нашли...
впрочем, способ программного открывания оригинала найден, а остальное - оффтоп

Автор:  Info21 [ Среда, 07 Апрель, 2010 10:12 ]
Заголовок сообщения:  Re: Временная горячая клавиша

Info21 писал(а):
Евгений Темиргалеев писал(а):
Насчёт компиляции КП-х модулей такое убеждение было?
Такая аналогия мне в голову как-то не пришла.
Но это неочевидная аналогия.
Компилируем переднее окно.
А тут обновляем все меню.

Ну да ладно. Полезно иметь в виду.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/