Кто-нибудь уже наигрался с пользовательскими скриптами в своих программах?
Мы успешно исполняем VBScript — наш продукт с поддержкой пользовательских скриптов уже работает на сотне компьютеров, но!..
Пользователям весьма желательно иметь подсказки при написании своих скриптов. Например такие, какие появляются в Delphi (или в MSVS) при вводе точки после объекта или при вводе скобки после имени процедуры. Имеются в виду объекты и процедуры, объявленные и реализованные внутри нашей программы.
"Изобретать велосипед" не хочется. Пожалуйста, поделитесь опытом, у кого он имеется. Может быть существуют фриварные или хотя бы платные модули, помогающие пользователям редактировать скрипты?
Alex
Re: Исполнение в своих EXE пользовательских скриптов
От:
Аноним
Дата:
16.08.04 14:48
Оценка:
АГА! Пиратская версия .net студии или beta версия
Re: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, AlexKB, Вы писали:
AKB>"Изобретать велосипед" не хочется. Пожалуйста, поделитесь опытом, у кого он имеется. Может быть существуют фриварные или хотя бы платные модули, помогающие пользователям редактировать скрипты?
Re[2]: Исполнение в своих EXE пользовательских скриптов
От:
Аноним
Дата:
16.08.04 15:44
Оценка:
Здравствуйте, psg, Вы писали:
AKB>>"Изобретать велосипед" не хочется. Пожалуйста, поделитесь опытом, у кого он имеется. Может быть существуют фриварные или хотя бы платные модули, помогающие пользователям редактировать скрипты?
psg>http://sourceforge.net/projects/synedit/
Он только подсвечивает?
psg>Подсветка синтаксиса — это уже много
Нам очень нужны подсказки, появляющиеся по мере ввода строки кода. Пользователи, пишущие скрипты внутри нашей программы, не являются профессиональными программистами, да и скрипты ихние часто живут не более пары часов, поэтому не столько важна подсветка уже написанных строчек, сколько необходма подсказка контекстно-допустимых свойств, методов и параметров.
Re[2]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, Аноним, Вы писали:
А>АГА! Пиратская версия .net студии или beta версия
Это о чем сейчас речь?
Есть наша Delphi-программа, в ней есть объекты и методы, пользователям предоставляется возможность создавать и запускать свои собственные VBСкрипты, оперирующие нашими published объектами... а при чем здесь пиратская версия dotnet?
Alex
Re: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, AlexKB, Вы писали:
AKB>Пользователям весьма желательно иметь подсказки при написании своих скриптов. Например такие, какие появляются в Delphi (или в MSVS)
Функции типа Code Insight однозначно требуют нестандартного редактора, чтобы отследить момент активации (причем просто ловить "точку" недостаточно, нужен контекст, в который она впечатывается), а также синтаксического анализа кода, чтобы определить тип объекта. Поэтому подумайте, стоит ли овчинка выделки. Может лучше обойтись "малой кровью", например по выделенному ProgID выводить справку о свойствах и методах объекта.
Re[2]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, AlexKB, Вы писали:
AKB>>Пользователям весьма желательно иметь подсказки при написании своих скриптов. Например такие, какие появляются в Delphi (или в MSVS)
W>Функции типа Code Insight однозначно требуют нестандартного редактора, чтобы отследить момент активации (причем просто ловить "точку" недостаточно, нужен контекст, в который она впечатывается), а также синтаксического анализа кода, чтобы определить тип объекта.
Раньше мы уже создавали редактор на основе примитивного Memo и запускали парсер после каждого нажатия клавиши. Т.е., например, если ListBox высвечивает (после точки) две строки "подсказки": Move и Resize, то нажатие стрелки "вправо" пересоздает и высвечивает ListBox с единственной строкой Resize, поскольку после точки присутствует буква r:
SomeObject.r
Нажатие Enter даст результат, аналогичный борландовскому Code Insight:
SomeObject.Resize
Но это был наш собственный интерпретатор нашего примитивного скрипта, сейчас нужно нечто посерьезнее.
W> Поэтому подумайте, стоит ли овчинка выделки. Может лучше обойтись "малой кровью", например по выделенному ProgID выводить справку о свойствах и методах объекта.
Справка неинтересна. Мы обязаны сделать не хуже, чем было в случае с нашим предыдущим скриптом. А раз там был Code Insight, значит и для VBScript, редактируемом в нашей программе, необходимо сделать не хуже...
Alex
Re[3]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, psg, Вы писали:
AKB>>>"Изобретать велосипед" не хочется. Пожалуйста, поделитесь опытом, у кого он имеется. Может быть существуют фриварные или хотя бы платные модули, помогающие пользователям редактировать скрипты?
psg>>http://sourceforge.net/projects/synedit/
А>Он только подсвечивает?
Зачатки autocomplete у него есть. Кое-что можно взять из demo и 3rd party files. Но основную массу работы конечно придется выполнить вручную.
Re[3]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, AlexKB, Вы писали:
AKB>Мы обязаны сделать не хуже, чем было в случае с нашим предыдущим скриптом. А раз там был Code Insight, значит и для VBScript, редактируемом в нашей программе, необходимо сделать не хуже...
Ну раз момент политический, тогда конечно...
А представьте себе, редактор кода с CodeInsight но без подсветки, это ж фу как несолидно!
AKB>Раньше мы уже создавали редактор на основе примитивного Memo и запускали парсер после каждого нажатия клавиши.
Помнится у Memo(как и у RichEdit) есть функция поиска границы слова от курсора вправо и влево, причем с заданием собственных разделителей. Может быть она вам поможет.
Парсить все после каждого нажатия клавиши тоже не фонтан IMHO. По крайней мере объекты, известные с прошлого парсинга, можно как-то использовать. Трудность наверное будет представлять отслеживание текущей scope (где курсор).
Re: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, AlexKB, Вы писали:
AKB>Кто-нибудь уже наигрался с пользовательскими скриптами в своих программах?
AKB>Мы успешно исполняем VBScript — наш продукт с поддержкой пользовательских скриптов уже работает на сотне компьютеров, но!..
AKB>Пользователям весьма желательно иметь подсказки при написании своих скриптов. Например такие, какие появляются в Delphi (или в MSVS) при вводе точки после объекта или при вводе скобки после имени процедуры. Имеются в виду объекты и процедуры, объявленные и реализованные внутри нашей программы.
AKB>"Изобретать велосипед" не хочется. Пожалуйста, поделитесь опытом, у кого он имеется. Может быть существуют фриварные или хотя бы платные модули, помогающие пользователям редактировать скрипты?
SAX Basic -- самая лучшая реализация "этого дела" на данный момент.
СтОит соответсвтенно -- 999$ single licence.
Если Ваши заказчики хорошо платят, то не факт, что вы сэкономите, если будете реализовывать вышеописанные фичи сами.
... << RSDN@Home 1.1.4 @@subversion >>
--
К вашим услугам,
Re[4]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, psg, Вы писали:
psg>>>http://sourceforge.net/projects/synedit/
psg>Зачатки autocomplete у него есть. Кое-что можно взять из demo и 3rd party files.
3rd — речь идет о юнихайлайтере? Что там имеется, кроме высвечивания ключевых слов?
psg>Но основную массу работы конечно придется выполнить вручную.
Здравствуйте, Spaider, Вы писали:
AKB>>Пользователям весьма желательно иметь подсказки при написании своих скриптов. Например такие, какие появляются в Delphi (или в MSVS) при вводе точки после объекта или при вводе скобки после имени процедуры. Имеются в виду объекты и процедуры, объявленные и реализованные внутри нашей программы.
AKB>>"Изобретать велосипед" не хочется. Пожалуйста, поделитесь опытом, у кого он имеется. Может быть существуют фриварные или хотя бы платные модули, помогающие пользователям редактировать скрипты?
S>SAX Basic -- самая лучшая реализация "этого дела" на данный момент.
Действительно, СУПЕР! Ничего другое (кроме "родного" VBA) и близко не находится.
S>СтОит соответсвтенно -- 999$ single licence.
Они скидок не предоставляют? Типа если купить на всех десяток лицензий, то каждая подешевле выйдет? ЁКЛМН! $1000!
S>Если Ваши заказчики хорошо платят, то не факт, что вы сэкономите, если будете реализовывать вышеописанные фичи сами.
Не факт, что эта SAX будет поддерживаться еще несколько лет. Исходников не дают, значит есть опасность остаться у разбитого золотого корыта...
Alex
Re[3]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, AlexKB, Вы писали:
S>>СтОит соответсвтенно -- 999$ single licence.
AKB>Они скидок не предоставляют? Типа если купить на всех десяток лицензий, то каждая подешевле выйдет? ЁКЛМН! $1000!
Team License (3 Developers) -- 1999$
Не исключено, что в частном порядке сможете уболтать пару сотен
AKB>Не факт, что эта SAX будет поддерживаться еще несколько лет. Исходников не дают, значит есть опасность остаться у разбитого золотого корыта...
А я и не знаю.
Честно говорря, сейчас пишу приложение на Д8 с поддержкой скриптинга, но бюджет (читай, заказчик) не потянет SAX Basic, поэтому в процессе написания юзаю тыреный для удобств, а в релиз уйдет что-то попроще, самопальное
... << RSDN@Home 1.1.4 @@subversion >>
--
К вашим услугам,
Re[4]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, Spaider, Вы писали:
S>>>СтОит соответсвтенно -- 999$ single licence.
AKB>>Они скидок не предоставляют? Типа если купить на всех десяток лицензий, то каждая подешевле выйдет? ЁКЛМН! $1000!
S>http://www.sax.net/activex/basic/buy.aspx
S>Team License (3 Developers) -- 1999$ S>Не исключено, что в частном порядке сможете уболтать пару сотен
Имелось в виду, что реально можем потянуть за $200, т.е. даже за $800 дороговато будет...
AKB>>Не факт, что эта SAX будет поддерживаться еще несколько лет. Исходников не дают, значит есть опасность остаться у разбитого золотого корыта...
S>А я и не знаю.
Вот-вот...
S>Честно говорря, сейчас пишу приложение на Д8 с поддержкой скриптинга,
Сразу три вопроса...
1. Пользователи будут впечатывать свои скрипты или не будут? — Просто скрипты легко исполняются в Delphi-программах с поддержкой VBScript (или JavaScript, если он интереснее).
2. ListBox-ы c допустимыми словами высвечиваться будут или реально скрипты будут только исполняться? — Ради чего рассматриваем SAX.
3. В Delphi8 используете VCL Forms Application или Windows Forms Application? — У нас Windows-вариант не получается делать — интерфейс с плавающими окошками не обнаружен...
S>но бюджет (читай, заказчик) не потянет SAX Basic,
Аналогично. Потому и завел разговор о скидках...
S>поэтому в процессе написания юзаю тыреный для удобств,
Там ключ? Что защищало тырку? Типа намек на поделиться...
S>а в релиз уйдет что-то попроще, самопальное
Релиз — коммерческий софт, покупаемый "развитыми" странами или чего попроще, для СНГ? Наиболее интересны ответы на нумерованные три вопроса... ну и намек на тырку...
Alex
Re[5]: Исполнение в своих EXE пользовательских скриптов
AKB>Сразу три вопроса...
AKB>1. Пользователи будут впечатывать свои скрипты или не будут? — Просто скрипты легко исполняются в Delphi-программах с поддержкой VBScript (или JavaScript, если он интереснее).
Теоретически будут, но практически пользователи в массе своей тупы до безоразия, так что...
AKB>2. ListBox-ы c допустимыми словами высвечиваться будут или реально скрипты будут только исполняться? — Ради чего рассматриваем SAX.
Реально, в версии 1, скорее всего, нет.
Собственно, суксь прикрутил именно для того, чтобы самому maintenance скрипты корпать.
AKB>3. В Delphi8 используете VCL Forms Application или Windows Forms Application? — У нас Windows-вариант не получается делать — интерфейс с плавающими окошками не обнаружен...
Пока не решил Это сложный вопрос, еще до конца не обдумал.
До гуёв дело пока не дошло, пишу модель данных.
Но всё больше склоняюсь к WinForms, т.к. мне GDI+ придется довольно интенсивно пользовать
S>>поэтому в процессе написания юзаю тыреный для удобств,
AKB>Там ключ? Что защищало тырку? Типа намек на поделиться...
Типа на варезах больше года валяецца. Ключ только на инсталляху и всё чики-пуки.
S>>а в релиз уйдет что-то попроще, самопальное
AKB>Релиз — коммерческий софт, покупаемый "развитыми" странами или чего попроще, для СНГ?
Не, заказчик пока с легким презрением относится к рынку СНГ.
AKB>Наиболее интересны ответы на нумерованные три вопроса... ну и намек на тырку...
Все намёки найдут ответы в denis(dot)dm(doggy)tut(dot)by
... << RSDN@Home 1.1.4 @@subversion >>
--
К вашим услугам,
Re[6]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, Spaider, Вы писали:
S>Собственно, суксь прикрутил именно для того, чтобы самому maintenance скрипты корпать.
Прикрученный SAX у пользователей работать будет? Или им твоего Дельфийского Экзешника не достаточно будет, потребуется инсталлировать пользователям SAX... и какой, кстати: рантайм (если есть) или дэвелоперский (жуть)?
AKB>>3. В Delphi8 используете VCL Forms Application или Windows Forms Application? — У нас Windows-вариант не получается делать — интерфейс с плавающими окошками не обнаружен...
S>Пока не решил Это сложный вопрос, еще до конца не обдумал. S>До гуёв дело пока не дошло, пишу модель данных.
Не понятно, как в VCL прикручивать ActiveX, если нет соответствующего DLL.
S>Но всё больше склоняюсь к WinForms, т.к. мне GDI+ придется довольно интенсивно пользовать
Это что такое?
S>Типа на варезах больше года валяецца. Ключ только на инсталляху и всё чики-пуки.
Надо будет посмотреть... это название конкретного сайта?
Alex
Re[7]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, AlexKB, Вы писали:
AKB>Здравствуйте, Spaider, Вы писали:
S>>Собственно, суксь прикрутил именно для того, чтобы самому maintenance скрипты корпать.
AKB>Прикрученный SAX у пользователей работать будет? Или им твоего Дельфийского Экзешника не достаточно будет, потребуется инсталлировать пользователям SAX... и какой, кстати: рантайм (если есть) или дэвелоперский (жуть)?
Нет, у пользователей не будет, есссно, я же его не покупал.
Чтобы использовать суксь басик на стороне клиента, нужно поставить redestibutable (пара dll-ек и один ActiveX).
AKB>>>3. В Delphi8 используете VCL Forms Application или Windows Forms Application? — У нас Windows-вариант не получается делать — интерфейс с плавающими окошками не обнаружен...
S>>Пока не решил Это сложный вопрос, еще до конца не обдумал. S>>До гуёв дело пока не дошло, пишу модель данных.
AKB>Не понятно, как в VCL прикручивать ActiveX, если нет соответствующего DLL.
Собтвенно для "прикручивания" сама по себе DLL не нужна, нужна либо Type Library (для раннего связывания)
или, чтобы только ProdID (для позднего связывания).
Естетсвенно, automation-объект должен быть зарегестрирован в системе, но добыть его для тебя -- обязанность внутренних механизмов COM.
S>>Но всё больше склоняюсь к WinForms, т.к. мне GDI+ придется довольно интенсивно пользовать
AKB>Это что такое?
Это GDI, только с плюсом Читай MSDN, информации предостаточно.
S>>Типа на варезах больше года валяецца. Ключ только на инсталляху и всё чики-пуки.
AKB>Надо будет посмотреть... это название конкретного сайта?
Это название нелегального софта вобще
... << RSDN@Home 1.1.4 @@subversion >>
--
К вашим услугам,
Re[4]: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, wildwind, Вы писали:
W>Помнится у Memo(как и у RichEdit) есть функция поиска границы слова от курсора вправо и влево, причем с заданием собственных разделителей. Может быть она вам поможет.
Как эта функция называется? У сишного CRichEditCtrl есть что-то на эту тему, а в Паскале найти пока не удалось.
W>Парсить все после каждого нажатия клавиши тоже не фонтан IMHO.
На нашем примитивном скрипте парсер отрабатывал текущую строку (а других и не надо) за ничтожную долю секунды, это не мешало пользователю перемещать курсор и печатать текст.
W>По крайней мере объекты, известные с прошлого парсинга, можно как-то использовать.
В одной строке у нас может быть несколько объектов и синтаксис текущего слова зависит от предыдущих слов в строке, поэтому предыдущие объекты мы используем... рекурсивно.
Запоминаем контрольную сумму составленного ListBox и заново заполняем его только по необходимости, вот тут много времени тратится.
W>Трудность наверное будет представлять отслеживание текущей scope (где курсор).
Трудностей много. Что такое scope?
Alex
Re: Исполнение в своих EXE пользовательских скриптов
Здравствуйте, AlexKB, Вы писали:
AKB>Кто-нибудь уже наигрался с пользовательскими скриптами в своих программах?
AKB>Мы успешно исполняем VBScript — наш продукт с поддержкой пользовательских скриптов уже работает на сотне компьютеров, но!..
AKB>Пользователям весьма желательно иметь подсказки при написании своих скриптов. Например такие, какие появляются в Delphi (или в MSVS) при вводе точки после объекта или при вводе скобки после имени процедуры. Имеются в виду объекты и процедуры, объявленные и реализованные внутри нашей программы.
AKB>"Изобретать велосипед" не хочется. Пожалуйста, поделитесь опытом, у кого он имеется. Может быть существуют фриварные или хотя бы платные модули, помогающие пользователям редактировать скрипты?
Можешь заглянуть еще сюда, полезные у них штуки: Link
Will I live tomorrow? Well I just can't say
But I know for sure — I don't live today.
Jimi Hendrix.