OberonCore https://forum.oberoncore.ru/ |
|
i21sys https://forum.oberoncore.ru/viewtopic.php?f=90&t=3367 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Среда, 30 Март, 2011 16:17 ] |
Заголовок сообщения: | i21sys |
http://oberoncore.ru/bbcc/subs/i21sys/ См. также: * i21sysCalls * i21sysDesktop - охранялка конфигурации окон * viewtopic.php?t=5397 (i21sysIn) |
Автор: | Евгений Темиргалеев [ Четверг, 31 Март, 2011 17:52 ] |
Заголовок сообщения: | Re: i21sys |
Включил i21sysEdit. Кого F5 интересует --- просьба проверить (лишний раз не помешает) и отписаться. |
Автор: | Пётр Кушнир [ Четверг, 31 Март, 2011 18:36 ] |
Заголовок сообщения: | Re: i21sys |
работает вроде. а зачем нужно Edit.Init? куда его втыкать надо(надо ли)? |
Автор: | Евгений Темиргалеев [ Четверг, 31 Март, 2011 20:19 ] |
Заголовок сообщения: | Re: i21sys |
Пётр Кушнир писал(а): а зачем нужно Edit.Init? куда его втыкать надо(надо ли)? Вызов Init стоит при загрузке модуля. Что она экспортирована, я вообще не обратил внимания... Подождём, что автор скажет.
|
Автор: | Info21 [ Четверг, 31 Март, 2011 20:46 ] |
Заголовок сообщения: | Re: i21sys |
Евгений Темиргалеев писал(а): Пётр Кушнир писал(а): а зачем нужно Edit.Init? куда его втыкать надо(надо ли)? Вызов Init стоит при загрузке модуля. Что она экспортирована, я вообще не обратил внимания... Подождём, что автор скажет.Не надо втыкать. Это чтобы переопределять язык. Нужно было при разработке. Пусть торчит. ( Вот ведь забавно как: раз торчит -- так сразу хочется дернуть ) |
Автор: | Евгений Темиргалеев [ Суббота, 02 Апрель, 2011 13:28 ] |
Заголовок сообщения: | Re: i21sys |
Включил i21sysDesktop. |
Автор: | Евгений Темиргалеев [ Вторник, 11 Октябрь, 2011 12:04 ] |
Заголовок сообщения: | Re: i21sys |
Выложены поправленные архивы: в списке упаковки были пропущены словари от i21sysEdit, поэтому он работал лишь отчасти (обнаружил Борис Рюмшин). |
Автор: | Евгений Темиргалеев [ Воскресенье, 11 Декабрь, 2011 16:38 ] |
Заголовок сообщения: | Re: i21sys |
i21sysIn добавил (по сравнению со стандартным In) возможность использования в качестве входного потока текста, "выделенного" маркерами-коммандерами. Уже давно использую исключительно "выделение" коммандерами. Иногда бывают затыки --- осталось выделение выше по тексту (или нечаянно ткнул), и никак не поймешь, глядя на текст после коммандера, почему процедура не даёт результатов, соответствующих входным данным. Вопрос использующим In --- как часто применяете в качестве входного потока весь активный текст или выделенный в нём кусок? |
Автор: | Info21 [ Воскресенье, 11 Декабрь, 2011 21:31 ] |
Заголовок сообщения: | Re: i21sys |
Евгений Темиргалеев писал(а): Вопрос использующим In --- как часто применяете в качестве входного потока весь активный текст или выделенный в нём кусок? Выделенный кусок -- постоянно.А весь текст -- пока не встретилось. Видимо, надо отменить эту возможность -- как раз в новой версии школьных сборок можно это сделать. |
Автор: | Евгений Темиргалеев [ Понедельник, 30 Январь, 2012 10:45 ] |
Заголовок сообщения: | Re: i21sys |
Может стоит добавить процедуру открытия с явным указанием потока(ов)? Вроде PROCEDURE OpenThis (stream: INTEGER) или PROCEDURE OpenThis (streams: SET) Тогда можно было бы открывать только текст из параметра коммандера, независимо от наличия выделения. |
Автор: | Info21 [ Понедельник, 30 Январь, 2012 15:10 ] |
Заголовок сообщения: | Re: i21sys |
Евгений Темиргалеев писал(а): Может стоит добавить процедуру открытия с явным указанием потока(ов)? Вроде Мысли у нас сошлись в почти одной точке.PROCEDURE OpenThis (stream: INTEGER) или PROCEDURE OpenThis (streams: SET) Тогда можно было бы открывать только текст из параметра коммандера, независимо от наличия выделения. Только у меня проще: PROCEDURE Open; -- поток ввода после коммандера. (*видимо*) PROCEDURE OpenSelection; -- поток ввода = выделению. (Ну, и для полноты счастья ввести булевский распознаватель наличия выделения.) В учебных целях используется один способ: фиксация выделения в качестве потока ввода через меню|горячую клавишу, а в программе -- Restart. Это потому, что в паскалеобразных программах нет коммандера, а в школьном контексте лучше выбрать один способ, и придерживаться его. |
Автор: | Евгений Темиргалеев [ Вторник, 29 Май, 2012 11:04 ] |
Заголовок сообщения: | Re: i21sys |
Внёс поправку viewtopic.php?p=72676#p72676 |
Автор: | Евгений Темиргалеев [ Вторник, 11 Март, 2014 14:19 ] |
Заголовок сообщения: | Re: i21sys |
Загружаю версию из сборки 09.11.2012. i21sysScanner (под wine) не читал словари. Проблема в избыточной "/" Код: CONST path0 = "i21sys/Rsrc/";
|
Автор: | Евгений Темиргалеев [ Вторник, 11 Март, 2014 15:28 ] |
Заголовок сообщения: | Re: i21sys |
i21sysIn, документация i21sysDesktop, и компонент i21sysEdit обновлены по базовой сборке 09.11.2012 и включена дополнительная документация. На оригинальном ББ ссылки с юникодными литерами работать не будут (viewtopic.php?t=3971). |
Автор: | Илья Ермаков [ Суббота, 22 Март, 2014 02:31 ] |
Заголовок сообщения: | i21sys F5 неправильно работает из-за TextMappers.Get |
В сборке OberonCore есть фикс внутренней процедуры TextMappers.Get (видимо, не соответствовала спецификации модуля): Код: PROCEDURE Get (VAR s: Scanner; OUT ch: CHAR); BEGIN s.rider.ReadChar(ch); IF ({returnViews, maskViews} * s.opts = {returnViews}) & (s.rider.view # NIL) THEN ch := VIEW; s.rider.char := VIEW END END Get; В оригинале эта процедура выглядела: Код: PROCEDURE Get (VAR s: Scanner; OUT ch: CHAR); BEGIN s.rider.ReadChar(ch); END Get; Короче говоря, при этом исправлении перестаёт правильно работать автодополнение i21sys. m F5 даёт MAX, а не конструкцию MODULE. p F5 даёт POINTER, а не PROCEDURE... и т. д. Видимо, тот случай, когда старые ошибки уже стали не багом, а фичами - и исправление влияет на работоспособность уже существующего клиентского кода... |
Автор: | Евгений Темиргалеев [ Суббота, 22 Март, 2014 13:41 ] |
Заголовок сообщения: | Re: i21sys F5 неправильно работает из-за TextMappers.Get |
Причина: не читаются подсказки i21sys/Rsrc/hints. i21sysScanner Docu писал(а): Любая вьюшка означает конец словаря (обычно это вьюшка DevCommanders.EndView, которая вставляется посредством Shift+Ctrl+Q). Первая вьюшка в тексте --- невидимая --- линейка, которая маскируется литерой TextMappers.para. Но вьюшкой от этого быть не перестаёт. Она и означает конец словаря при наличии исправления B23 (viewtopic.php?t=4353), в описании которого ситуация разобрана подробно.Можно просто прибавить ниже опцию TextMapper.maskViews и всё заработает; либо определять конец словаря более точно, например, "любая вьюшка кроме линейки". Код: PROCEDURE Open* ( path: ARRAY OF CHAR; name: Files.Name ); (* path relative to path0 *)
VAR loc: Files.Locator; i: INTEGER; fullName: Files.Name; conv: Converters.Converter; v: Views.View; BEGIN ... sc.ConnectTo( v( TextViews.View ).ThisModel() ); sc.SetOpts( { TextMappers.returnViews } ); (* используем вьюшку для отметки конца списка, поэтому хотим, чтобы sc ее не игнорировал, тогда мы тут засечем ее *) ... END Open; |
Автор: | Евгений Темиргалеев [ Воскресенье, 23 Март, 2014 15:42 ] |
Заголовок сообщения: | Re: i21sys |
Внёс поправку (архив обновлён) Код: sc.SetOpts( { TextMappers.returnViews, TextMappers.maskViews } );
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |