Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Элемент управления Scintilla (число прочтений - 61596 )
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Элемент управления Scintilla
30. Июля 2008 :: 09:30
Печать  
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)
OnUpdateUI()
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.
Последовательность поиска SciLexer.dll: каталог самой ВК, подкаталог config каталога программы, стандартная последовательность (каталог исполняемого файла, текущий каталог, PATH)

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

Скачать компоненту и пример использования можно тут: http://code.google.com/p/sci1c/
« Последняя редакция: 05. Августа 2008 :: 09:33 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #1 - 30. Июля 2008 :: 09:37
Печать  
Хорошая вещь!

ОФФ Степан, вот тебя прет последние пару месяцев Улыбка  Смех
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #2 - 30. Июля 2008 :: 09:43
Печать  
Замечен один небольшой прикол:
клавиатурные шорткаты для работы с буфером обмена и кнопки панели инструментов для работы с буфером работают только если фокус контрол получил по Tab'у, и не работают если фокус получен при клике мышкой.
Буду очень благодарен, если знатоки MFC и внутренностей 1с мне подскажут в чем может быть причина такого поведения.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #3 - 30. Июля 2008 :: 10:10
Печать  
Исходники тут: http://code.google.com/p/sci1c/
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #4 - 30. Июля 2008 :: 10:14
Печать  
На этом контроле всплывает старая проблема: "таб" съедается эсиной и не отдаёт его в текстовый редактор  Печаль

Я вот что-то применение данной ВК не найду. Если только редактировать модули налету прямо в режиме предприятия с последующей выгрузкой для ТурбоМД. А вы как используете её?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #5 - 30. Июля 2008 :: 10:18
Печать  
JohnyDeath писал(а) 30. Июля 2008 :: 10:14:
На этом контроле всплывает старая проблема: "таб" съедается эсиной и не отдаёт его в текстовый редактор

А у меня tab работает, как и ожидается, т.е. вставляет табуляцию.
что я делаю не так?
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #6 - 30. Июля 2008 :: 10:21
Печать  
steban писал(а) 30. Июля 2008 :: 09:43:
Замечен один небольшой прикол:
клавиатурные шорткаты для работы с буфером обмена и кнопки панели инструментов для работы с буфером работают только если фокус контрол получил по Tab'у, и не работают если фокус получен при клике мышкой.
Буду очень благодарен, если знатоки MFC и внутренностей 1с мне подскажут в чем может быть причина такого поведения.

попробуй вызвать CGetDoc7 CGetDoc::SetActiveCtl при OnMouseActivate твоего контрола
  

1&&2&&3
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #7 - 30. Июля 2008 :: 10:23
Печать  
steban писал(а) 30. Июля 2008 :: 10:18:
JohnyDeath писал(а) 30. Июля 2008 :: 10:14:
На этом контроле всплывает старая проблема: "таб" съедается эсиной и не отдаёт его в текстовый редактор

А у меня tab работает, как и ожидается, т.е. вставляет табуляцию.
что я делаю не так?

у меня те же вопросы (с)
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #8 - 30. Июля 2008 :: 10:43
Печать  
trad писал(а) 30. Июля 2008 :: 10:21:
попробуй вызвать CGetDoc7 CGetDoc::SetActiveCtl при OnMouseActivate твоего контрола

Получилось  Очень довольный
Great thanks.

ВК с исправлением брать тут: http://code.google.com/p/sci1c/downloads/list
« Последняя редакция: 30. Июля 2008 :: 12:10 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #9 - 30. Июля 2008 :: 10:49
Печать  
JohnyDeath писал(а) 30. Июля 2008 :: 10:14:
На этом контроле всплывает старая проблема: "таб" съедается эсиной и не отдаёт его в текстовый редактор

проверял на ScintillaDemo.ert?
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #10 - 30. Июля 2008 :: 10:53
Печать  
steban писал(а) 30. Июля 2008 :: 10:49:
JohnyDeath писал(а) 30. Июля 2008 :: 10:14:
На этом контроле всплывает старая проблема: "таб" съедается эсиной и не отдаёт его в текстовый редактор

проверял на ScintillaDemo.ert?

Да. И с последней, только что выложенной. По "табу" вообще ничео не происходит, если фокус у этого контрола.
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #11 - 30. Июля 2008 :: 11:00
Печать  
Поймал. Улыбка
Такое происходит с SciLexer.dll от SciColorer версии 0920.
Нормально работает с SciLexer от TortoiseSVN и с приложенной новой версией от metaeditor.
Подождем, пока Дима даст официальное добро на ее использование.
  

SciLexer.rar ( 219 KB | Загрузки )

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #12 - 30. Июля 2008 :: 11:03
Печать  
JohnyDeath писал(а) 30. Июля 2008 :: 10:14:
Я вот что-то применение данной ВК не найду. Если только редактировать модули налету прямо в режиме предприятия с последующей выгрузкой для ТурбоМД. А вы как используете её?

а вот так:
  

SQLiteSH.GIF ( 8 KB | Загрузки )
SQLiteSH.GIF

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #13 - 30. Июля 2008 :: 11:13
Печать  
скачал Scintilla Release 1.76, но не обнаружил там /scintilla/include/wrapper.inl
  

1&&2&&3
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #14 - 30. Июля 2008 :: 11:21
Печать  
В приложенном архиве ConvertScintillaiface.js, при помощи которого был сгенерен wrapper.inl.
Положить в scintilla/include и запустить.

Залил в репозитарий ConvertScintillaiface.js, Scintilla.iface, wrapper.h, wrapper.inl
  

ConvertScintillaiface.rar ( 1 KB | Загрузки )

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #15 - 30. Июля 2008 :: 13:28
Печать  
steban писал(а) 30. Июля 2008 :: 11:00:
Поймал. Улыбка
Такое происходит с SciLexer.dll от SciColorer версии 0920.
Нормально работает с SciLexer от TortoiseSVN и с приложенной новой версией от metaeditor.
Подождем, пока Дима даст официальное добро на ее использование.


на следующей неделе, думаю, сделаю очередную версию колорера, там будут эти изменения, пока пусть тут полежит...
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #16 - 30. Июля 2008 :: 20:35
Печать  
JohnyDeath писал(а) 30. Июля 2008 :: 10:14:
Я вот что-то применение данной ВК не найду. Если только редактировать модули налету прямо в режиме предприятия с последующей выгрузкой для ТурбоМД. А вы как используете её?

Конечно, а обработки править напрямую gcomp-ом или через compound.dll.
Получится прямо как в сапе, при наличии соответствующих прав - можно править код.

Так сложилось что для 1С программаст - бог, и в любой конторе не то что править будут пытаться, а в голову никому не придет такое. А для САПа это нормальное явление, когда полномочный сотрудник поправил функцию, не имея при этом доступа к метаданным.
Можно конечно спорить о целесообразности такого, но такое имеет место быть.

Кроме того можно применить в том же QA, если не нравится консоль запросов от Ивана.

В общем браво! Большой сенкс за ВК!
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #17 - 31. Июля 2008 :: 06:41
Печать  
+1
Можно еще прикрутить обработку "произвольный алгоритм" к обработке "универсальный подбор и обработка объектов".
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #18 - 03. Августа 2008 :: 00:48
Печать  
steban писал(а) 30. Июля 2008 :: 11:03:
а вот так:

Степ, а чтобы лексику под SQL ты вручную набирал в ert, или где-то мона взять?  Подмигивание
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #19 - 03. Августа 2008 :: 01:24
Печать  
И еще, Степ, он ресайзится что-то хреново. Ты пробовал его с классом Привязка использовать?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #20 - 03. Августа 2008 :: 08:36
Печать  
Arta писал(а) 03. Августа 2008 :: 01:24:
И еще, Степ, он ресайзится что-то хреново.

Fixed
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #21 - 03. Августа 2008 :: 10:36
Печать  
Сорри за полуофф.

А 1CQA никто еще красиво не переделал?
Теперь же можно еще и нормальное позиционирование для строки с ошибкой сделать.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #22 - 03. Августа 2008 :: 11:09
Печать  
kms писал(а) 03. Августа 2008 :: 10:36:
Сорри за полуофф.

А 1CQA никто еще красиво не переделал?
Теперь же можно еще и нормальное позиционирование для строки с ошибкой сделать.

Ну Иван же консоль ваяет.

Но мне попроще надо, вот QA и домучиваю.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #23 - 03. Августа 2008 :: 11:14
Печать  
Эмм.. Где домучиваешь?
Мне вполне подходит старая версия 1CQA, без .NET, только контрольчик заменить и раскрасить.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #24 - 03. Августа 2008 :: 11:15
Печать  
Вот его и мучаю. Осталось домучать сцинтиллу Улыбка


Степ, теперь вылет в космос на СоздатьЭлементУправленияНаФорме("ScintillaControl", "ТекстЗапроса")  Печаль
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #25 - 03. Августа 2008 :: 11:24
Печать  
Arta писал(а) 03. Августа 2008 :: 11:15:
Вот его и мучаю. Осталось домучать сцинтиллу Улыбка

О. Супер.
Тада я пока пошел за пивом и буду ждать результатов на природе.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #26 - 03. Августа 2008 :: 11:28
Печать  
steban

А событие при перемещении курсора по строкам и колонкам можешь сделать?
Или, может быть, уже есть?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #27 - 03. Августа 2008 :: 11:32
Печать  
kms писал(а) 03. Августа 2008 :: 11:28:
и колонкам можешь сделать?
Или, может быть, уже есть?

Эээ...  а какие колонки в текстовом контроле?  Очень довольный
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #28 - 03. Августа 2008 :: 11:43
Печать  
Arta писал(а) 03. Августа 2008 :: 11:32:
Эээ...  а какие колонки в текстовом контроле?  Очень довольный

Редакторские колонки, какие ишо.
На, сам переводи "col" с английского на нецензурный Подмигивание
  

col.PNG ( 0 KB | Загрузки )
col.PNG

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #29 - 03. Августа 2008 :: 11:44
Печать  
Блин. Переклинило.

В общем ты сам виноват со своим ТП, теперь башка работает только в одном направлении  Смех
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #30 - 03. Августа 2008 :: 11:46
Печать  
Arta писал(а) 03. Августа 2008 :: 11:15:
Степ, теперь вылет в космос на СоздатьЭлементУправленияНаФорме("ScintillaControl", "ТекстЗапроса")  Печаль

Fixed
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #31 - 03. Августа 2008 :: 11:51
Печать  
kms писал(а) 03. Августа 2008 :: 11:28:
А событие при перемещении курсора по строкам и колонкам можешь сделать?

OnUpdateUI + GetCurrentPos + LineFromPosition + GetColumn.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #32 - 03. Августа 2008 :: 11:51
Печать  
Все гуд.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #33 - 03. Августа 2008 :: 12:49
Печать  
ПолуОФФ:
Миш, вот как бы было элегантно в Деструкторе сцинтиллы достучаться до атрибута формы на котором она создана, далее до имени формы, и СохранитьЗначение(ИмяФормы + ИмяАтрибута, ТекстСцинтиллы) чтобы в след раз восстановить.
И никаких лишних движений не надо...

P.S. Я знаю что достал, но как в классах-наследниках ТП, активиксов и т.д. можно упростить себе жизнь  Круглые глаза


P.S.S. Хмм... в деструторе наверное нельзя. Ну попросим Степана сделать доп событие...
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #34 - 03. Августа 2008 :: 13:07
Печать  
Arta писал(а) 03. Августа 2008 :: 00:48:
steban писал(а) 30. Июля 2008 :: 11:03:
а вот так:

Степ, а чтобы лексику под SQL ты вручную набирал в ert, или где-то мона взять?  Подмигивание

http://screencaphosting.com/c/73386_5b4762b0995c6627579b2e1208b3e0272500decb
Посмотри во вложении.
  

SQLSHDemo.rar ( 163 KB | Загрузки )

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #35 - 03. Августа 2008 :: 15:26
Печать  
Епрст, в этом контроле даже автоподстановка в два счета реализуется Улыбка


P.S. Степ, а что-то вроде KeyUp/KeyDown уже автоматом есть? Методы то понятно, а события?

Вроде там в нотификэйшенах проглядывается SCN_KEY, но в событиях его не вижу Печаль
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #36 - 03. Августа 2008 :: 15:47
Печать  
Arta писал(а) 03. Августа 2008 :: 15:26:
P.S. Степ, а что-то вроде KeyUp/KeyDown уже автоматом есть? Методы то понятно, а события?

Есть OnModified и OnCharAdded
Цитата:
SCN_KEY
Reports all keys pressed but not consumed by Scintilla. Used on GTK+ because of some problems with keyboard focus and is not sent by the Windows version
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #37 - 03. Августа 2008 :: 16:04
Печать  
Хорошо, как отловить привычное для меня Ctrl-/ для комментариев? Улыбка

OnCharAdded не ловить контрола, и добавляет символ, не дает возможности отменить ввод.
OnModified - у меня не работает.

Разкомментарил в твоей обработке - не фунициклирует Печаль


в обработке работает. сорри
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #38 - 03. Августа 2008 :: 16:53
Печать  
Хочется поиметь поддержку Форма::ПолучитьЭлементУправления Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #39 - 03. Августа 2008 :: 19:37
Печать  
steban писал(а) 03. Августа 2008 :: 11:51:
kms писал(а) 03. Августа 2008 :: 11:28:
А событие при перемещении курсора по строкам и колонкам можешь сделать?

OnUpdateUI + GetCurrentPos + LineFromPosition + GetColumn.

О. То, что надо.
А можно сделать, чтобы GetColumn ширину таба учитывал (вроде бы он должен) ?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #40 - 03. Августа 2008 :: 19:40
Печать  
Arta писал(а) 03. Августа 2008 :: 12:49:
Миш, вот как бы было элегантно в Деструкторе сцинтиллы достучаться до атрибута формы на котором она создана, далее до имени формы, и СохранитьЗначение(ИмяФормы + ИмяАтрибута, ТекстСцинтиллы) чтобы в след раз восстановить.

P.S.S. Хмм... в деструторе наверное нельзя. Ну попросим Степана сделать доп событие...

Ну, наверное, подойдет что-то типа ТП::ПриУничтожении...

Цитата:
P.S. Я знаю что достал, но как в классах-наследниках ТП, активиксов и т.д. можно упростить себе жизнь  Круглые глаза

Все ништяк. Улыбка Я иногда ворчу, но это так, больше для вида. Ну ты же знаешь. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #41 - 03. Августа 2008 :: 22:04
Печать  
Arta писал(а) 03. Августа 2008 :: 16:53:
Хочется поиметь поддержку Форма::ПолучитьЭлементУправления Улыбка

сделано в версии 1.0.0.4
« Последняя редакция: 05. Августа 2008 :: 07:36 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #42 - 03. Августа 2008 :: 22:31
Печать  
kms писал(а) 03. Августа 2008 :: 19:37:
А можно сделать, чтобы GetColumn ширину таба учитывал (вроде бы он должен) ?

Икс его знает.
Судя по документации, должен учитывать.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #43 - 04. Августа 2008 :: 16:47
Печать  
версия 1.0.0.5

Добавлено событие OnDestroy.
« Последняя редакция: 05. Августа 2008 :: 09:34 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #44 - 04. Августа 2008 :: 17:25
Печать  
steban писал(а) 03. Августа 2008 :: 22:31:
kms писал(а) 03. Августа 2008 :: 19:37:
А можно сделать, чтобы GetColumn ширину таба учитывал (вроде бы он должен) ?

Икс его знает.
Судя по документации, должен учитывать.

C простой заменой SciLexer.dll от SciTE ширина таба начинает учитываться норм.
Но, конечно, хотелось бы достичь взаимопонимания с лексером от колорера.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #45 - 04. Августа 2008 :: 17:38
Печать  
А у тебя какая? Отсюда?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #46 - 04. Августа 2008 :: 18:06
Печать  
Arta писал(а) 04. Августа 2008 :: 17:38:
А у тебя какая? Отсюда?

Угу. Оттуда - с ней же табы работают.
Но вот GetColumn их ширину считает за 1.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #47 - 04. Августа 2008 :: 18:19
Печать  
Ясно.


Ну в общем все что есть в scite - все реализуется. Даже для автоподстановки достаточно скорости 1с.
  

ClipBoard-1_009.jpg ( 25 KB | Загрузки )
ClipBoard-1_009.jpg
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #48 - 05. Августа 2008 :: 02:07
Печать  
kms писал(а) 04. Августа 2008 :: 17:25:
steban писал(а) 03. Августа 2008 :: 22:31:
kms писал(а) 03. Августа 2008 :: 19:37:
А можно сделать, чтобы GetColumn ширину таба учитывал (вроде бы он должен) ?

Икс его знает.
Судя по документации, должен учитывать.

C простой заменой SciLexer.dll от SciTE ширина таба начинает учитываться норм.
Но, конечно, хотелось бы достичь взаимопонимания с лексером от колорера.


это я убирал табы чтоб в конфигураторе работало... там таб считается за один символ...  сегодня взаимапонимание будет достигнуто  Улыбка
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #49 - 05. Августа 2008 :: 07:44
Печать  
Версия 1.0.0.6

Добавлено событие OnKeyDown(keyCode, alt, shift, ctrl, char, flag)
Поведение аналогично одноименному событию FormEx.
« Последняя редакция: 05. Августа 2008 :: 09:33 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #50 - 05. Августа 2008 :: 10:36
Печать  
Поправлена scilexer.dll.  В конфигураторе считает таб за один символ, не в конфигураторе - за указанную ширину таба. Также поправлен сам колорер, всё лежит тут
http://www.1cpp.ru/forum/YaBB.pl?num=1197864156
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Элемент управления Scintilla
Ответ #51 - 05. Августа 2008 :: 13:04
Печать  
metaeditor писал(а) 05. Августа 2008 :: 10:36:
Поправлена scilexer.dll.  В конфигураторе считает таб за один символ, не в конфигураторе - за указанную ширину таба. Также поправлен сам колорер, всё лежит тут
http://www.1cpp.ru/forum/YaBB.pl?num=1197864156


metaeditor писал(а) 05. Августа 2008 :: 02:07:
это я убирал табы чтоб в конфигураторе работало... там таб считается за один символ...  сегодня взаимапонимание будет достигнуто  Улыбка

Работает, thanks! Улыбка
Ну надо же, никогда не замечал, что в конфигураторе и правда табы за 1 (оугх! Улыбка ) считаются.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #52 - 27. Августа 2008 :: 11:08
Печать  
как то все очень сложно..
не то что ниасилю, но всеравно сложно....
  
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #53 - 27. Августа 2008 :: 16:02
Печать  
trdm писал(а) 27. Августа 2008 :: 11:08:
как то все очень сложно..
не то что ниасилю, но всеравно сложно....

Дим, я чуть освобожусь, и скину образец. Там все легко.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #54 - 27. Августа 2008 :: 18:48
Печать  
да не напрягайся, мне всеравно скоро со сцынтилой прийдется разговаривать очень конкретно.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #55 - 30. Сентября 2008 :: 13:27
Печать  
Что то не хочет работать пример, взял последний: SciColorer_0922.zip
с сайта скачал последний: 1sci_1006.rar, там же взял демо пример, но при попытке открыть пример пишет:
sci=Ф.СоздатьЭлементУправления("Scintilla","ScintillaControl");
{D:\DOWNLOADS\1C\1C++\SCINTILLA\SCINTILLADEMO.ERT(247)}: Недопустимое имя класса: 'Scintilla'.


файлик 1sci.dll положил в BIN каталоге, в чем может быть проблема?
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #56 - 30. Сентября 2008 :: 13:31
Печать  
Вставил в демо пример в процедуру:
"ПриОткрытии()"
Код
Выбрать все
ЗагрузитьВнешнююКомпоненту("1sci.dll"); 


вроде заработало.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #57 - 26. Ноября 2008 :: 13:07
Печать  
Arta писал(а) 27. Августа 2008 :: 16:02:
trdm писал(а) 27. Августа 2008 :: 11:08:
как то все очень сложно..
не то что ниасилю, но всеравно сложно....

Дим, я чуть освобожусь, и скину образец. Там все легко.


2 arta
Плиз можешь показать свою обработку которая в скриншоте... я конечно сам счас ее ковыряю... но блин что-то пока тяжело идет с натягом прямо таки  Круглые глаза
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #58 - 26. Ноября 2008 :: 21:00
Печать  
Подскажите пожалуйста кто знает...
после того как я вызову метод svcsvc - FilterValue фокус с контрола теряется. Как обратно вернуть фокус???  Нерешительный
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #59 - 27. Ноября 2008 :: 08:55
Печать  
vandalsvq писал(а) 26. Ноября 2008 :: 21:00:
Подскажите пожалуйста кто знает...
после того как я вызову метод svcsvc - FilterValue фокус с контрола теряется. Как обратно вернуть фокус???  Нерешительный


http://www.1cpp.ru/docum/icpp/html/ActiveX.html#setfocus ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #60 - 27. Ноября 2008 :: 12:14
Печать  
JohnyDeath писал(а) 27. Ноября 2008 :: 08:55:
vandalsvq писал(а) 26. Ноября 2008 :: 21:00:
Подскажите пожалуйста кто знает...
после того как я вызову метод svcsvc - FilterValue фокус с контрола теряется. Как обратно вернуть фокус???  Нерешительный


http://www.1cpp.ru/docum/icpp/html/ActiveX.html#setfocus ?



Неееее... погоди так дело не пойдет. Во-первых я используюю dll и создаю через метод объекта Форма - СоздатьЭлементУправления. Во вторых у меня класс является наследником от объекта Scintilla и соответственно его инициализация выглядит так

Код
Выбрать все
ОбъектScintilla = ОбъектФорма.СоздатьЭлементУправления(я(),ИдентификаторКонтейнера); 



А вот теперь пожалуйста скажи у кого из представленных здесь объектов есть метод УстановитьФокус. У ОбъектScintilla - точно нет. У объекта "Форма" я тоже не знаю. Ну и я() тоже не знает что это такое.

И кстати если уж возвращать фокус то в какую позицию? Хотя ее в принципе можно рассчитать... о...мысль... пошел проверять.  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #61 - 27. Ноября 2008 :: 12:28
Печать  
Все решил... в порядке обхода поставил его первым номером и сразу после выбора курсор возвращается в объект.
Всем спасибо за внимание Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #62 - 27. Ноября 2008 :: 12:36
Печать  
vandalsvq писал(а) 27. Ноября 2008 :: 12:14:
Неееее... погоди так дело не пойдет. Во-первых я используюю dll и создаю через метод объекта Форма - СоздатьЭлементУправления. Во вторых у меня класс является наследником от объекта Scintilla и соответственно его инициализация выглядит так

Код
Выбрать все
ОбъектScintilla = ОбъектФорма.СоздатьЭлементУправления(я(),ИдентификаторКонтейнера); 



А вот теперь пожалуйста скажи у кого из представленных здесь объектов есть метод УстановитьФокус. У ОбъектScintilla - точно нет. У объекта "Форма" я тоже не знаю. Ну и я() тоже не знает что это такое.

1. ИМХо не я(), а вирт() надежнее.
И вирт() должен знать об "УстановитьФокус".
2. "у меня класс является наследником от объекта Scintilla"
Это как?
Напиши полную строку определения класса - точнее, дай его ВСЕ базовые классы. Наверняка ведь там есть АктивИкс Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #63 - 27. Ноября 2008 :: 12:45
Печать  
строка инициализации класса

Код
Выбрать все
класс КонсольЗапросов.ScintillaControl = КонсольЗапросов.ScintillaControl.ert: Scintilla{}; 


Ну в принципе раз проблема решена (пусть и таким способом) то мне по большому счету не принципиально. Хотя было бы интересно как можно установить фокус на данном объекте принудительно. Ведь аналогично устанавливать фокус можно и на табличном поле а мне этого не хватает... поиском попробовал найти не нашел... а спрашивать стыдно  Смущённый
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #64 - 27. Ноября 2008 :: 19:16
Печать  
Однако проблема не решена. Стоит только активизировать другой контрол (например на форме есть еще АктивИкс - дерево) и после выбора в Scintill-е фокусироваться будет уже на дереве...
в общем помогите плиз... как-то парит постоянно мышкой после подсказки тыкать.  Нерешительный


В общем прошу всех меня извинить за тутошние посты. Я немного затупил. Дело в том что активизация ТП - Активизировать(Идентификатор) - это мне давно известно... но чтобы активизировать объект Scintilla надо ставить флаг редактирования = 1. Т.е. активизировать(ИДКонтрола,1).... вот так вот...
Простите меня  Плачущий
« Последняя редакция: 28. Ноября 2008 :: 18:52 - vandalsvq »  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #65 - 19. Марта 2012 :: 09:14
Печать  
Интересно, а как уйти с контрола? По Tab не получается, т.к. Tab отрабатывет табуляцию в тексте. Мало ли.... Вдруг мыша не работает. Зайти в контрол можно (перебирая по Tab элементы формы), а выйти нет.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #66 - 17. Июля 2013 :: 08:29
Печать  
А Телепат к контролу никак не подключается?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #67 - 17. Июля 2013 :: 08:57
Печать  
Похоже, что никак.

Было бы здорово подсветку по выделенному реализовать и поиск по тексту.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #68 - 12. Ноября 2013 :: 15:13
Печать  
Для подсветки выделенного текста сделал процедуру:

Код
Выбрать все
Процедура ВыделитьПоТексту()
	Перем ТекстВыделения,ТекПозиция,НачПоз,Рез,ДлТекстаВыделения,ДлВсегоТекста;
	ТекстВыделения=sci.GetSelText();
	Если ПустаяСтрока(ТекстВыделения)=1 Тогда Возврат; КонецЕсли;
	ДлВсегоТекста=СтрДлина(sci.Text);
	ДлТекстаВыделения=СтрДлина(ТекстВыделения);
	SCI.INDICSETSTYLE(0,7);
	SCI.INDICSETFORE(0, RGB(155,155,255));
	SCI.INDICSETUNDER(0,1);
	SCI.SETINDICATORCURRENT(0);

	ТекПозиция=SCI.GETCURRENTPOS();
	Рез=0;НачПоз=0;
	Пока Рез<>-1 Цикл
		SCI.SETTARGETSTART(НачПоз);
		SCI.SETTARGETEND(ДлВсегоТекста);
		Рез=sci.SEARCHINTARGET(ДлТекстаВыделения,ТекстВыделения);
 		Если Рез=-1 Тогда Возврат;КонецЕсли;
		НачПоз=Рез+ДлТекстаВыделения;
		Если ТекПозиция=НачПоз Тогда Продолжить;КонецЕсли;
		SCI.INDICATORFILLRANGE(Рез,ДлТекстаВыделения);
	КонецЦикла;
КонецПроцедуры
 



Эту процедуру я вызываю в событии OnUpdateUI контрола ScintillaControl:

Код
Выбрать все
Процедура ScintillaControlOnUpdateUI(control)
.....
	SCI.INDICATORCLEARRANGE(0,СтрДлина(sci.Text)); //Убираем подсветку всех выделений
	ВыделитьПоТексту();
......
 



Цвет выделения устанавливается в настройках SCI:

Код
Выбрать все
	SCI.SETSELBACK(1,0);
	SCI.SETSELFORE(1,65535); 

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #69 - 02. Декабря 2013 :: 10:57
Печать  
Пример реализации поиска и выделения в консоли. Консоль чья-то, уже не помню кого. Просто добавил в неё эти фишки:

1. Разная раскраска 1С-модуля и Запросов
2. Подсветка цветом выделения во всех местах текста
3. Поиск по Ctrl+F, F3
4. Отметка выделенного блока как комментария (Ctrl+/ или Shift+Ctrl+/ - для снятия). Комменты разные для 1С-модуля и запросов.
5. Ну и всякие там Ctrl+C/Ctrl+V, Ctrl+Z/Ctrl+Y, Crtl+A, Crtl+B/Ctrl+E (переход в начало/конец процедуры)

  

________003.ert ( 58 KB | Загрузки )

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Элемент управления Scintilla
Ответ #70 - 02. Декабря 2013 :: 11:04
Печать  
скрин
  

Konsol.JPG ( 32 KB | Загрузки )
Konsol.JPG

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать