Переключение на Главную Страницу Страницы: 1 ... 3 4 [5]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Элемент управления Scintilla (число прочтений - 61525 )
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 ... 3 4 [5] 
ОтправитьПечать