А что если добавить в существующий макроязык некоторые возможности:
1) доступ к указанной строке в редакторе (получение ее содержимого в переменную и обратно)
2) возможность создания меню выбора опции (возвращает номер строки)
3) вызов InputBox'a (диалог с однострочным редактором и кнопками "Да", "Нет")
4) возможность работы с буффером обмена как с переменной
Мне кажется, что этого будет вполне достаточно для реализации простых скриптов с наименьшими затратами..
PS. Не лучше ли в macro.chm пункт Состояния обозвать как Значения или Свойства ?
Расширение макро языка в редакторе (а может лучше FMScript)
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Но вообще если уж делать то чтение и запись любой строки и переход по ним. Начинаем перерастать в бэйсик.
А вообще с редактором очень хорошо работает farmail скрипт, и скрипты можно вешать на макросы. Так что лучше подумать а нужно ли оно вообще.
И меню там есть и infobox. Можно включить как отдельный плагин в дистриб, ведь у редактора есть api, зачем макросами там лазить.
А вообще с редактором очень хорошо работает farmail скрипт, и скрипты можно вешать на макросы. Так что лучше подумать а нужно ли оно вообще.
И меню там есть и infobox. Можно включить как отдельный плагин в дистриб, ведь у редактора есть api, зачем макросами там лазить.
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
Ну, анализируя FARMail Script, в нем не хватает для полного счастья работы с редактором следующих функций:
-------------
позиция
-------------
- integer getcolpos() - получение номера текущей колонки.
- integer getrowpos() - получение номера текущей строки.
требуются, если предвидится необходимость сохранения начальных координат и использование setpos.
-------------
выделение
-------------
- integer blkend() - получение номера строки в которой оканчивается блок
- integer setsel(integer i_start,pos_start,i_end,pos_end) - установка выделения с позиции pos_start строки i_start до позиции pos_end строки i_end. Возвращает 0 если получилось, -1 если нет
- integer setblktype() - установка типа выделения: 0 - снять выделение, 1 - потоковое, 2 - вертикальное. Возвращает 0 если получилось, -1 если нет.
-------------
Состояние (частичное Editor.State)
-------------
- integer romode() - получить значение режима блокировки. Возвращает 0 если в режиме "полный доступ", 1 если в режиме "только чтение"
- integer chgmode() - производилась ли модификация файла после сохранения. Возвращает 0 если нет, 1 если да.
-------------
INI файлы
-------------
- integer setini(string section, string key, string/integer value) - запись ключа в ini файл, где section - название секции в ini файле, key - название ключа в ini файле, value - записываемое значение. Возвращает 0 если получилось, -1 если нет.
-------------
позиция
-------------
- integer getcolpos() - получение номера текущей колонки.
- integer getrowpos() - получение номера текущей строки.
требуются, если предвидится необходимость сохранения начальных координат и использование setpos.
-------------
выделение
-------------
- integer blkend() - получение номера строки в которой оканчивается блок
- integer setsel(integer i_start,pos_start,i_end,pos_end) - установка выделения с позиции pos_start строки i_start до позиции pos_end строки i_end. Возвращает 0 если получилось, -1 если нет
- integer setblktype() - установка типа выделения: 0 - снять выделение, 1 - потоковое, 2 - вертикальное. Возвращает 0 если получилось, -1 если нет.
-------------
Состояние (частичное Editor.State)
-------------
- integer romode() - получить значение режима блокировки. Возвращает 0 если в режиме "полный доступ", 1 если в режиме "только чтение"
- integer chgmode() - производилась ли модификация файла после сохранения. Возвращает 0 если нет, 1 если да.
-------------
INI файлы
-------------
- integer setini(string section, string key, string/integer value) - запись ключа в ini файл, где section - название секции в ini файле, key - название ключа в ini файле, value - записываемое значение. Возвращает 0 если получилось, -1 если нет.