Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 09:29   #1
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию Компонент для подсветки синтаксиса

Предлагаю для окончательной отладки и тестирования компонент для подсветки синтаксиса.
Описание:
Компонент THMemo - предназначен для создания простеньких редакторов с подсветкой. Имеет словарик для ключевых слов, функций и даже всплывающую менюшку по типу Дельфи . Также может подсвечивать цифры, различные спецсимволы и т.д. В отличие от более навороченных и авторитетных компонентов может подсвечивать и русские буковы и слова содержащие оба алфавита.
Собственно описание полей имеется в начале самого юнита THMemo.pas Лучше всего использовать его RunTime, но можно и дизайном, в случае если не обращать внимание на кучу мелких ошибок.
Жду описания ошибок .

ЗЫ. Компонент по сути писал не я, а raxp со Stilet'ом...
Вложения
Тип файла: rar Подсветка.rar (25.5 Кб, 78 просмотров)
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 16.02.2010, 10:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я есче ниче не писал...
Я только подсветку сделать успел.
Вот во вложении.

Я хочу написать а-ля делфийский редактор для Компонентного паскаля, но начал всего лишь вчера, так что редактирование прикрутить не успел
Пока просто просмотр с подсветкой которую можно настраивать.
Вложения
Тип файла: rar TMultiEdit.rar (171.3 Кб, 67 просмотров)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.02.2010, 10:42   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...та нуу... помогал так, урывочно... фактически всю основную работу проделали вы, Utkin. И за это вам огромная благодарность, компонент очень нужный.
...еще раз спасибо бум тестировать дале
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 16.02.2010, 12:48   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Исправил:
1. Теперь можно писать любым цветом (раньше только черным).
2. Теперь можно вставлять из менюшки в пустой HMemo (раньше должен был быть хотя бы один символ).
Вложения
Тип файла: rar hmemo.rar (8.3 Кб, 47 просмотров)
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 16.02.2010, 18:35   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Исправил:
1. Теперь можно писать любым цветом (раньше только черным).
2. Теперь можно вставлять из менюшки в пустой HMemo (раньше должен был быть хотя бы один символ).
А есть возможность определенные строки раскрашивать? Например, если мне надо с 10 по 13-ю строки в красный цвет шрифт закрасить?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 16.02.2010, 19:22   #6
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Еще бы сворачивание кода + нумерация строк
Levsha100 вне форума Ответить с цитированием
Старый 16.02.2010, 20:00   #7
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,475
По умолчанию

Спасибо за нужный компонент, обязательно поставлю его в новую версию RES creator-a ).
Всем плюс, кто принимал участие в написание компонента, только Utkin-у не получается поставить (

Последний раз редактировалось uberchel; 16.02.2010 в 20:04.
uberchel вне форума Ответить с цитированием
Старый 16.02.2010, 20:10   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...пока рылся в коде hmemo, наткнулся на любопытный компонент подсветки синтаксиса tRAHLEditor (наследник наследника от class...)... реализация довольно громоздка, но пока до конца генофонд не разобрал, может так и нужно... надо использовать "исторический опыт" для hmemo/

...вырвал его из общей библиотеки ralib и приспособил к жизни отдельно от всех прилагаю сорцы с тестовым проектом... нЭ путать созвучие со мной, автор либы - Andrei Prygounkov.
Изображения
Тип файла: jpg подсветка синтаксиса.jpg (54.6 Кб, 204 просмотров)
Вложения
Тип файла: zip подсветка синтаксиса_hleditor.zip (57.8 Кб, 64 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 17.02.2010, 07:44   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
А есть возможность определенные строки раскрашивать? Например, если мне надо с 10 по 13-ю строки в красный цвет шрифт закрасить?
Есть событие, возникающее в момент разбора строки - программер навешивает свою функцию (данное событие есть именно функция, а не процедура) - она получает содержимое той строки, которые должно быть подсвечено. В результате анализа строки Ваша функция должна выставить флаг (ну просто true/false), в случае если он установлен вся строка будет выкрашена определённым цветом, иначе раскраска будет продолжена как обычно. Цвет для раскраски через событие, тоже можно задавать самому.
Я хотел использовать данное событие для анализа синтаксических ошибок и их выделения (то есть еще до запуска проги на исполнение или компиляцию), но ИМХО, можно использовать и так как Вам нужно.

Цитата:
Еще бы сворачивание кода + нумерация строк
Я примерно знаю как сделать нумерацию строк - это не очень сложно. Раскраска осуществляется в момент перерисовки компонента - я могу задать определенный отступ, в котором расставлять нумерацию.
Сворачивание кода надо подумать, но у меня просто не хватает времени и некоторых знаний. И кроме того, компоненты до этого не писал (отсюда есть некоторые мелкие баги).
Если у Вас есть желание и время, можете предложить реализацию или идею по реализации - компонент народный и для всех.

raxp
Я так понял, что он использует в качестве предка свой аналог RichEdit'a - он помнит оформление каждой строчки кода. Дельфи, кажись, сделана аналогично - она использует RTF для подсветки.
Здесь же как расцвечивать строку определяется в момент отображения на экран. Есть определенные правила (в OnPaint) по которым должна краситься строка.


http://www.delphikingdom.com/asp/vie...catalogid=1148 - нашел довольно-таки неплохую реализацию подсветки (в частности имеется свертка кода), но имеет такие же недостатки как и SynEdit - он осуществляет подсветку ключевых слов, а не подсветку синтаксиса. Если скрестить HMemo c тем компонентом, то должно получиться интересно .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 17.02.2010 в 09:29.
Utkin вне форума Ответить с цитированием
Старый 19.02.2010, 10:36   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Уменьшил мерцание компонента
Вложения
Тип файла: rar hmemo.rar (10.1 Кб, 53 просмотров)
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация подсветки синтаксиса. как? Delphi. Alesa90 Помощь студентам 3 12.12.2009 11:12
Компонент для справки Sergius X Компоненты Delphi 1 02.06.2009 11:47
Хак vBulletin подсветки синтаксиса. AXS WordPress и другие CMS 1 15.11.2008 21:37
Компонент для подсветки синтаксиса das-xp Компоненты Delphi 1 19.05.2007 21:03