Коллеги, Views.Old(...VAR name: Files.Name...) - открывает зритель (View) из файла. Имя файла может быть передано в краткой форме - без расширения; в этом случае полагается расширение .ocf. Однако, хотя name - параметр-переменная, Old не корректирует ее значение, когда добавляется расширение .ocf!! Из-за этого иногда, напр, при попытке открыть уже открытый в окне текст, система "не находит" его, и создает дубликат в новом окне. Если не заметишь получишь, рассогласование: часть изменений - в одном окне, часть - в другом, и бардак - везде.
("Иногда", потому что многие команды до вызова Views.Old сами дополняют краткую форму, вызвав Kernel.MakeFileName; но не все).
Как поправить: Views.Old реализуется через крюк Views.ViewHook.OldView: PROCEDURE (h: ViewHook) OldView (loc: Files.Locator; name: Files.Name; VAR conv: Converters.Converter): Views.View; Вот если ему тоже указать VAR name: Files.Name, то добавленное дефолтное расширение окажется на месте, и рассогласования не будет. Я полагаю, что это мелкий недосмотр, поскольку conv передается как переменная, а не как значение.
Предлагаю поправить. Слово VAR добавится в модуле Views и StdDialog, где реализуется крюк.
|