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

Опубликовал steban (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
241
.1245054996 41,28Kb 241 Бесплатно

См. также

Добавить вознаграждение
Комментарии
1. Сергей Рудаков (fishca) 1032 15.06.09 22:08 Сейчас в теме
Жаль только что семерка уходит в прошлое...А в восьмерке такого и не предвидица :)
2. Ёпрст (Ёпрст) 1011 16.06.09 08:14 Сейчас в теме
3. serpent Пентюхов С. Г. (serpent) 40 16.06.09 08:15 Сейчас в теме
(1) в прошлое она77 долго не уйдет, не надейтесь
4. Александр Рытов (Арчибальд) 2653 16.06.09 08:26 Сейчас в теме
(1) Есть вариант, что восьмерка уйдет в прошлое раньше. Где у нас 8.0?
АндрейКр; +1 Ответить 1
5. Сергей Рудаков (fishca) 1032 16.06.09 09:13 Сейчас в теме
(2) 5 лет работаю только с клиентами на восьмерке
(4) восьмерке будет еще долго жить, на подходе 8.2, семерка, это же не 7.0 ;)
6. Ёпрст (Ёпрст) 1011 16.06.09 09:30 Сейчас в теме
(5) И чего ? Я в 2 раза дольше на клюшках... не показатель.
7. Сергей Рудаков (fishca) 1032 16.06.09 09:37 Сейчас в теме
(6) согласен не показатель
семерка имеет право на сосуществование с восьмеркой, кому-то хватает и ее
1С пока поддерживает и шестерку :)
8. Александр Рытов (Арчибальд) 2653 16.06.09 09:44 Сейчас в теме
Оффтоп прекращаем, господа!
9. Руслан Харисов (fAngel) 370 16.06.09 18:31 Сейчас в теме
Спасибо автору и громадное спасибо metaeditor за его замечательный продукт
теперь 8 в плане удобства программирования далеко позади 7.7 и новые проекты если они не большие предпочитаю делать на 7.7
10. Сергей Поляк (sergeypv) 17.06.09 07:18 Сейчас в теме
А можно ссылки на ert к рис.4269 и рис.4270 ?
11. rasswet (rasswet) 80 17.06.09 10:52 Сейчас в теме
видно что-то для профии)) судя по отсутствию простого описания. Типа кому нужно-тот и так знает:)
12. steban (steban) 71 17.06.09 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. Сергей Поляк (sergeypv) 18.06.09 10:02 Сейчас в теме
(12) просто всем спасибо. Проект значительно снижает нагрузку на глаза - повышает скорость визуального поиска, исключает возможность ошибки с реквизитами в коде и упрощает способы работы, когда работаешь с 7.7 и 8 одновременно.
14. mdbm (mdbm) 187 24.06.09 10:14 Сейчас в теме
Залил dll в папку config
Вошел в 1С
Запустил демку.ert
Выдает:

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

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

1sci.dll должна лежать там, откуда она может быть загружена методом ЗагрузитьВнешнююКомпоненту (например в каталоге программы).
16. mdbm (mdbm) 187 24.06.09 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 (steban) 71 24.06.09 12:08 Сейчас в теме
ввести в табло: ЗагрузитьВнешнююКомпоненту("1sci.dll")
что показывается?
18. mdbm (mdbm) 187 24.06.09 16:38 Сейчас в теме
Получилось !!! )))
Спасибо за совет.
Попробую прикрутить к своей консоли
19. Any Body (AnyBody) 09.07.09 15:35 Сейчас в теме
А как "поймать вырезанный" кусок текста? Действие "CUT" я ловлю, а как получить то, что вырезано?
20. Any Body (AnyBody) 09.07.09 16:18 Сейчас в теме
Все разобрался. Не включил "свисток"(SC_MOD_BEFOREDELETE 0x800 Text is about to be deleted from the document ) на эти события.
21. Александр Маляев (maljaev) 767 05.08.09 09:08 Сейчас в теме
Несколько вопросов:

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

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

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

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

3) Как сделать форматирование блоков как в конфигураторе?
не понял
26. steban (steban) 71 25.12.09 13:40 Сейчас в теме
(21) и совет из (24) тоже актуален - заработает кнопка undo на стандартной панели инструментов 1с и хоткей undo на Alt+Backspace
27. c+ + (ture) 224 28.12.09 10:56 Сейчас в теме
(24) Добрый человек. Я сделал все ка ты мне сказал и теперь при переходе между закладками со 100% вероятностью получаю вылет из 1С при вызове метода "Форма.ИспользоватьСлой". О какой-либо помощи и просить не смею.
28. steban (steban) 71 28.12.09 14:19 Сейчас в теме
(27) принято
в следующем году буду разбираться.
29. Александр Алюев (alyuev) 198 29.03.12 12:49 Сейчас в теме
(25) В какую сторону смотреть, чтобы сделать подсветку выделенного слова во всех местах, как в Colorer? И откуда ноги растут у интеллисенса? Чтобы хотя бы основные операторы подсказывать.
30. Александр Алюев (alyuev) 198 30.03.12 16:46 Сейчас в теме
(27) Возможное решение проблемы вылетов (что у меня было и без ИспользоватьСлой(), правда, что еще более загадочно - не у все) - поставить признак многострочности и неограниченности у текстового поля ввода, которое используется в качестве реквизита-контейнера Scintilla.
31. c+ + (ture) 224 31.03.12 08:53 Сейчас в теме
По себе скажу - лучше не связываться, описаний мало, ошибок много, автор проект бросил и вы свой бросите, если станете опираться на этот.
wolfsoft; +1 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа