Подключение рускоязычных функций (процедур)
Roman
г.Лысьва, Пермская обл.
Добрый день, Александр!
Возникла проблема:
К FR3.14 подключаю функцию с названием на русском языке:
frxReport1.Script.AddMethod('function Окр(Number: Real; Precision: Integer): Real', CallMethod);
При попытке использования этой функции выдаётся ошибка "Слишком много параметров". Исследование кода показало, что слово Окр парсером не определяется как Ident.
Исправил ошибку так:
1) Подключил отдельно FastScript.
2) В директориях проекта Delphi установил пути на Source для FR и FS
3) Исправил в fs_iparser.pas:
constructor TfsParser.Create;
begin
...
FIdentifierCharset := FIdentifierCharset + ;
...
end;
После чего всё заработало нормально.
Но самое интересное в том, что при использовании только FastScript'а, без FR (просто тестовый проект на FS) достаточно установить ExtendedCharset := True, и всё работает без изменения кода в fs_iparser.
Может это глюк, а может как-то можно другим, стандартным способом обойти проблему?
---
С уважением, Роман Узьмов
Возникла проблема:
К FR3.14 подключаю функцию с названием на русском языке:
frxReport1.Script.AddMethod('function Окр(Number: Real; Precision: Integer): Real', CallMethod);
При попытке использования этой функции выдаётся ошибка "Слишком много параметров". Исследование кода показало, что слово Окр парсером не определяется как Ident.
Исправил ошибку так:
1) Подключил отдельно FastScript.
2) В директориях проекта Delphi установил пути на Source для FR и FS
3) Исправил в fs_iparser.pas:
constructor TfsParser.Create;
begin
...
FIdentifierCharset := FIdentifierCharset + ;
...
end;
После чего всё заработало нормально.
Но самое интересное в том, что при использовании только FastScript'а, без FR (просто тестовый проект на FS) достаточно установить ExtendedCharset := True, и всё работает без изменения кода в fs_iparser.
Может это глюк, а может как-то можно другим, стандартным способом обойти проблему?
---
С уважением, Роман Узьмов
Комментарии
По-моему, НИГДЕ НИКОГДА не стоит использовать русские буквы ни в каких идентификаторах -- особенно, если собираешься работать не один день.
Геморроя будет меньше.
Исключение - 1С, там это зашито изначально.
С уважением, Андрей