IE 2016

Элемент управления Scintilla

Опубликовал steban в раздел Программирование - Внешние компоненты

1sci.dll - внешняя компонента для 1С:Предприятие

ВК реализует элемент управления Scintilla.

Не требует регистрации в реестре.

1sci.dll - внешняя компонента для 1С:Предприятие

ВК реализует элемент управления Scintilla.
Не требует регистрации в реестре.
Реализует интерфейс v7Control, следовательно создается на форме и через FormEx, и через класс Форма в 1с++ версий 2.5 и старше

Методы аналогичны методам "родного" ЭУ Scintilla и описаны в документации (http://scintilla.sourceforge.net/ScintillaDoc.html)

Дополнительные методы:
SendSciMessage(message, wParam, lPAram)
SaveToFile(ИмяФайла)
LoadFromFile(ИмяФайла)
LineLen(НомерСтроки)
SetRange(line1, col1, line2, col2, Text)
MoveCaret(line1, col1, line2, col2)
Range(line1, col1, line2, col2, Text)

Свойства:
Text
SelStartLine
SelStartCol
SelEndLine
SelEndCol

События:
OnStyleNeeded(position)
OnCharAdded(ch)
OnSavePointReached()
OnSavePointLeft()
OnModifyAttemptRO()
OnDoubleClick(position, line, ctrl, shift, alt)
OnUpdateU I()
OnModified(modType, position, length, linesAdded, line)
OnMarginClick(margin, position, ctrl, shift, alt)
OnNeedShown(position, length)
OnUserListSelection(wParam, text)
OnDwellStart(position, x, y)
OnDwellEnd(position, x, y)
OnZoom()
OnHotSpotClick(position, ctrl, shift, alt)
OnHotSpotDoubleClick(position, ctrl, shift, alt)
OnCallTipClick(position)
OnAutoCSelection(wParam, text)
OnSetFocus()
OnKillFocus()
OnDestroy()
OnKeyDown(keyCode, alt, shift, ctrl, char, flag)

Для работы требуется SciLexer.dll от metaeditor или любой другой сборки версии не ниже 1.74 (Если вы используете SciColorer, то она у вас уже есть).
Последовательность поиска SciLexer.dll: каталог самой ВК, подкаталог config каталога программы, стандартная последовательность (каталог исполняемого файла, текущий каталог, PATH)

Написано в соавторстве с metaeditor.

http://www.1cpp.ru/forum/YaBB.pl?num=1217410246

Лицензия GPL.

Файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1245054996 41,28Kb
14.11.09
232
.1245054996 41,28Kb 232 Бесплатно

См. также

Лучшие комментарии

4. Арчибальд 16.06.2009 08:26
(1) Есть вариант, что восьмерка уйдет в прошлое раньше. Где у нас 8.0?
Ответили: (5)
+ 1 [ АндрейКр; ]
# Ответить
31. ture 31.03.2012 08:53
По себе скажу - лучше не связываться, описаний мало, ошибок много, автор проект бросил и вы свой бросите, если станете опираться на этот.
+ 1 [ wolfsoft; ]
# Ответить

Комментарии

1. fishca 15.06.2009 22:08
Жаль только что семерка уходит в прошлое...А в восьмерке такого и не предвидица :)
Ответили: (25) (4) (3) (2)
# Ответить
2. Ёпрст 16.06.2009 08:14
(1) 5 лет ужо уходит...
Ответили: (5)
# Ответить
3. serpent 16.06.2009 08:15
(1) в прошлое она77 долго не уйдет, не надейтесь
# Ответить
4. Арчибальд 16.06.2009 08:26
(1) Есть вариант, что восьмерка уйдет в прошлое раньше. Где у нас 8.0?
Ответили: (5)
+ 1 [ АндрейКр; ]
# Ответить
5. fishca 16.06.2009 09:13
(2) 5 лет работаю только с клиентами на восьмерке
(4) восьмерке будет еще долго жить, на подходе 8.2, семерка, это же не 7.0 ;)
Ответили: (6)
# Ответить
6. Ёпрст 16.06.2009 09:30
(5) И чего ? Я в 2 раза дольше на клюшках... не показатель.
Ответили: (7)
# Ответить
7. fishca 16.06.2009 09:37
(6) согласен не показатель
семерка имеет право на сосуществование с восьмеркой, кому-то хватает и ее
1С пока поддерживает и шестерку :)
# Ответить
8. Арчибальд 16.06.2009 09:44
Оффтоп прекращаем, господа!
# Ответить
9. fAngel 16.06.2009 18:31
Спасибо автору и громадное спасибо metaeditor за его замечательный продукт
теперь 8 в плане удобства программирования далеко позади 7.7 и новые проекты если они не большие предпочитаю делать на 7.7
# Ответить
10. sergeypv 17.06.2009 07:18
А можно ссылки на ert к рис.4269 и рис.4270 ?
Ответили: (12)
# Ответить
11. rasswet 17.06.2009 10:52
видно что-то для профии)) судя по отсутствию простого описания. Типа кому нужно-тот и так знает:)
# Ответить
12. steban 17.06.2009 14:36
(10) конфа, в которой получен скрин 4270, лежит тут: http://www.1cpp.ru/forum/YaBB.pl?num=1217410246/34#34

скрин 4269 получен в обработке "1c query analyzer", слегка допиленной Артемом aka Arta. В свободном доступе ее пока нету.
оригинальный Query Analyzer - http://dev.citykirov.ru/1CQA.zip
Ответили: (13)
# Ответить
13. sergeypv 18.06.2009 10:02
(12) просто всем спасибо. Проект значительно снижает нагрузку на глаза - повышает скорость визуального поиска, исключает возможность ошибки с реквизитами в коде и упрощает способы работы, когда работаешь с 7.7 и 8 одновременно.
# Ответить
14. mdbm 24.06.2009 10:14
Залил dll в папку config
Вошел в 1С
Запустил демку.ert
Выдает:

sci=Ф.СоздатьЭлементУправления("Scintilla","ScintillaControl");
{E:\1C_BASES\ SCINTILLA\SCINTILLADEMO.ERT(247)}: Недопустимое имя класса: 'Scintilla'.

С чем это может быть связано ?
# Ответить
15. steban 24.06.2009 10:42
в папке config ищется SciLexer.dll. ее можно взять тут: http://infostart.ru/projects/3783/

1sci.dll должна лежать там, откуда она может быть загружена методом ЗагрузитьВнешнююКомпоненту (например в каталоге программы).
# Ответить
16. mdbm 24.06.2009 11:27
1sci.dll положил в папку BIN
SciLexer.dll лежит в папке config (перезалил по твоей ссылке)
1cpp.dll лежит в папке BIN (размер 1 998 848 байт )

Ошибка та же:
sci=Ф.СоздатьЭлементУправления("Scintilla","ScintillaControl");
{E:\1C_BASES\ SCINTILLA\SCINTILLADEMO.ERT(247)}: Недопустимое имя класса: 'Scintilla'.
# Ответить
17. steban 24.06.2009 12:08
ввести в табло: ЗагрузитьВнешнююКомпоненту("1sci.dll")
что показывается?
# Ответить
18. mdbm 24.06.2009 16:38
Получилось !!! )))
Спасибо за совет.
Попробую прикрутить к своей консоли
# Ответить
19. AnyBody 09.07.2009 15:35
А как "поймать вырезанный" кусок текста? Действие "CUT" я ловлю, а как получить то, что вырезано?
# Ответить
20. AnyBody 09.07.2009 16:18
Все разобрался. Не включил "свисток"(SC_MOD_BEFOREDELETE 0x800 Text is about to be deleted from the document ) на эти события.
# Ответить
21. maljaev 05.08.2009 09:08
Несколько вопросов:

1) Почему-то при вызове метода undo у меня отменяется весь набранный текст. А как сделать многошаговый undo? Ну и redo соответственно.
2) Прикрутить телепат/интеллисенс невозможно никак?
3) Как сделать форматирование блоков как в конфигураторе?
Ответили: (25) (26)
# Ответить
22. bazilisa 16.12.2009 22:44
никогда бы не додумлся.
А про + мог бы и не просить и так поставлю - не жалко
# Ответить
23. ture 24.12.2009 19:24
Как побороть проблему с копированием в буфер и вставкой обратно. Честно говоря уже замаялся писать текст в этом объекте - делаю CTRL+C, чтоб чуть выше или ниже сделать CTRL+P, и бац! а буфер не содержит того, что копировал. Пример моей работы тут (без рекламы).
Прошу пояснить почему в буфер не попадает или из буфера не вставляется.
Ответили: (24)
# Ответить
24. steban 25.12.2009 12:53
(23) создавай Scintill'у не на кнопке, а на поле ввода
Ответили: (26) (27)
# Ответить
25. steban 25.12.2009 13:36
(21)
Почему-то при вызове метода undo у меня отменяется весь набранный текст. А как сделать многошаговый undo? Ну и redo соответственно
вызвать SetUndoCollection(1) (http://www.scintilla.org/ScintillaDoc.html#SCI_SETUNDOCOLLECTION )

2) Прикрутить телепат/интеллисенс невозможно никак?

не скажу, что невозможно.

Но легких способов прикрутить готовые интеллисенс-скрипты я не вижу

3) Как сделать форматирование блоков как в конфигураторе?
не понял
Ответили: (29)
# Ответить
26. steban 25.12.2009 13:40
(21) и совет из (24) тоже актуален - заработает кнопка undo на стандартной панели инструментов 1с и хоткей undo на Alt+Backspace
# Ответить
27. ture 28.12.2009 10:56
(24) Добрый человек. Я сделал все ка ты мне сказал и теперь при переходе между закладками со 100% вероятностью получаю вылет из 1С при вызове метода "Форма.ИспользоватьСлой". О какой-либо помощи и просить не смею.
Ответили: (28) (30)
# Ответить
28. steban 28.12.2009 14:19
(27) принято
в следующем году буду разбираться.
# Ответить
29. alyuev 29.03.2012 12:49
(25) В какую сторону смотреть, чтобы сделать подсветку выделенного слова во всех местах, как в Colorer? И откуда ноги растут у интеллисенса? Чтобы хотя бы основные операторы подсказывать.
# Ответить
30. alyuev 30.03.2012 16:46
(27) Возможное решение проблемы вылетов (что у меня было и без ИспользоватьСлой(), правда, что еще более загадочно - не у все) - поставить признак многострочности и неограниченности у текстового поля ввода, которое используется в качестве реквизита-контейнера Scintilla.
# Ответить
31. ture 31.03.2012 08:53
По себе скажу - лучше не связываться, описаний мало, ошибок много, автор проект бросил и вы свой бросите, если станете опираться на этот.
+ 1 [ wolfsoft; ]
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016