Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как реализовать подсветку кода?

Ответить
Настройки темы
Как реализовать подсветку кода?

Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Pavluha
Дата: 25-08-2012
Здравствуйте. В поле edit находиться текст с bb тегами. Нужно подсветить определённые теги определённым стилем (например, тег [IMG][/IMG] сдалать зелёным, а тег [b][/b] сделать жирным). Вопрос: как это реализовать. Подскажите пожалуйста. Заранее спасибо.

Отправлено: 18:11, 25-08-2012

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pavluha:
когда текста слишком много, а ты допечатываешь, то текст сам по себе прокручивается от начала до конца »
У меня не прокручивается.

Цитата Pavluha:
это из-за функции _GUICtrlRichEdit_SetSel »
Она восстанавливает исходную позицию курсора.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:34, 26-08-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Creat0R, http://autoit-script.ru/autoit3_docs...dit_setsel.htm

Цитата:
Устанавливает выделение текста в указанных позициях начала и конца

Отправлено: 17:27, 26-08-2012 | #12


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
У меня не прокручивается. »
возьмите строк так 1000 или больше, и поглядите.

Отправлено: 17:55, 26-08-2012 | #13


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pavluha:
Устанавливает выделение текста в указанных позициях начала и конца »
Мне не нужна цитата из справки, я и так в неё заглядываю прежде чем использовать функцию
Я написал про восстановление т.к в коде у меня сначала получается текущая позиция выделения, а потом происходит восстановление.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 20:18, 26-08-2012 | #14


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Creat0R, тогда есть другие варианты раскрасить текст, при этом не выделяя его?

Отправлено: 21:05, 26-08-2012 | #15


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


Скачай сборник скриптов, сделай поиск файла RESH_Mod_Example.au3. Это упрощённый аналог RESHv2.2 от Beege. Я хотел выяснить как делается подсветка и упростил скрипт до минимума. Смысл такой: функции _GUICtrlRichEdit_Stream... работают с данными как бы в сыром режиме. Это как HTML, который мы видим как текст, на самом деле в это текстовый файл, где слова обрамлены тегами. Аналогично и здесь, в "шапке" файла заданы стили, далее по тексту идут теги. Задача обрамить текст тегами и вставить в RichEdit. Условия обрамления это уже другой вопрос, но факт тот, что обрабатывать текст перед вставкой получается гораздо быстрее, чем вызывать специальные функции, которые будут выделять текст и ещё сопровождаться мельканием тексты при вызове.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:45, 29-08-2012 | #16


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


AZJIO, буду значит учить разметку RTF. Твоя идея выглядит очень хорошо, если к этому добавить ещё автообновление раскраски каждые, например, 100 мс.

Отправлено: 19:44, 30-08-2012 | #17


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Ещё небольшой вопрос: как сделать так, чтобы слева показывало номера строк, как в редакторе notepad++

Отправлено: 21:35, 30-08-2012 | #18


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата AZJIO:
факт тот, что обрабатывать текст перед вставкой получается гораздо быстрее »
Но его придётся обрабатывать в файле я так понял?
Я не нашёл как без записи в файл изменять Stream...

Цитата Pavluha:
как сделать так, чтобы слева показывало номера строк, как в редакторе notepad++ »
Если как в редакторах, то это совсем не тривиальная задача.
Но есть _GUICtrlRichEdit_SetParaNumbering, которая добавит нумерацию строк внутри элемента.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 22:33, 30-08-2012 | #19


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Я не нашёл как без записи в файл изменять Stream... »
_GUICtrlRichEdit_StreamToVar, _GUICtrlRichEdit_StreamFromVar. А вообще глядя на пример о котором я писал выше, так в нём _GUICtrlRichEdit_SetText вставляет форматированный текст. Хотя так не должно быть, потому что теги должны вставляется как есть. Я, конечно, могу потестить, но мне это не надо...

Цитата Pavluha:
Твоя идея выглядит очень хорошо, если к этому добавить ещё автообновление раскраски каждые, например, 100 мс. »
Не уверен что это хорошая идея. Тестируйте, пробуйте варинаты с добавлением текста (не перезапись всего) и изменение флага модификации _GUICtrlRichEdit_IsModified, который позволит определить изменение текста, а не изменять когда это не требуется.

Отправлено: 23:17, 30-08-2012 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как реализовать подсветку кода?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2010 - [решено] Excel - отключить подсветку гиперссылок в ячейках ipvinner Microsoft Office (Word, Excel, Outlook и т.д.) 16 22-05-2018 14:59
Интерфейс - [решено] Как в windows 7 отключить подсветку иконок рабочего стола при наведении мышкой. Activated Оформление Windows 11/ 10 / 8 / 7 / Vista 4 04-01-2013 13:05
Win32 API - Поменять подсветку окна 21h Программирование и базы данных 5 08-12-2010 22:41




 
Переход