gifts2017

Элемент управления 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
235
.1245054996 41,28Kb 235 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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

1sci.dll должна лежать там, откуда она может быть загружена методом ЗагрузитьВнешнююКомпоненту (например в каталоге программы).
16. mdbm (mdbm) 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) 24.06.09 12:08
ввести в табло: ЗагрузитьВнешнююКомпоненту("1sci.dll")
что показывается?
18. mdbm (mdbm) 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) 05.08.09 09:08
Несколько вопросов:

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

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

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

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

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