![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: нет Всего: 13 |
Собсна, сабж.
Меня давно интересует подобный вопрос. Пытался разобраться сам, рылся в сорцах VCL, но до конца не понял. Идея вот в чём: разработать компонент, реализующий такую функциональность, как, например, в той же IDE Delphi или Visual Studio. Т.е., подсветка синтаксиса, нумерация строк, и т.д. и т.п. Подсветку синтаксиса пытался сделать на основе TRichEdit. Всё работало (к сожалению, код не могу привести сейчас, если надо будет - скажите, завтра скину), но ужасно тормозило. И это при том, что я проходил не по всему тексту в TRichEdit, а только в близлежащих 20 символах от места изменения. Т.е. пока пройдусь по всем ключевым словам (дабы их выделить цветом), проходит много времени. Отчасти это было из-за перерисовки TRichEdit. Если от неё избавиться, то работает намного быстрее, но не настолько чтоб можно было применять в реальных приложениях. Теперь вопросы: 1. На основе чего лучше реализовать редактор с подсветкой синтаксиса (и другими фишками) (только не предлагайте сторонние компоненты)? 2. Как вообще устроен TRichEdit на низком уровне? Как там буквы перекрашиваются и стили текста изменяются? (интересует уровень WinAPI). Заранее спасибо. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Так есть уже такой компонент.
SynEdit'ом зовётся... Добавлено через 1 минуту и 33 секунды
Это их контрол ![]() А дельфийский TRichEdit всего лишь класс-обёртка над ним. |
|||
|
||||
Addmin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 3.2.2006 Где: сослан в Сибирь Репутация: нет Всего: 15 |
Зря минусами в Snowy кидаетесь
![]()
А на чём иначе? На Memo или на Edit? RTF изначально не приспособлен для таких громоздких работ. Если реализовать всё-то, что Вы хотите - это уже даже не RichEdit будет ![]() Насколько я знаю, множество хороших редакторов сделано на SynEdit (Ну или Scintilla, но их меньшинство). И ничего, не жалуются ![]() -------------------- SimpleFit.ru - блог о том, как заниматься спортом нормальным людям -- Стимул работы в Сибири - комары. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 5 Всего: 60 |
SynEdit я не нашел не каких минусов а вот при использование alphaskins глючить прокрутка... ну это дефект alphaskins.
TRichEdit представляю подсветку синтаксиса на нем даже если делать по примеру из delphiworlda который там есть большой текст будет тормозить. все же synedit удобнее и быстрей. откажись от этой мысли -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Просто нужно отключить его скинование. Правда скрол становится не скиновым, но из двух зол... Сам недавно наступил на эти грабли. С VirtualTree проблемы там ещё серъёзней. Приходится отключать скинование. Но лучше так, чем никак... |
|||
|
||||
aktuba |
|
||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
Использую и то и другое. Подобного не замечал. Можно подробнее?
А с ним то какие проблемы? Кроме Header-а вроде все скиниться... Это сообщение отредактировал(а) aktuba - 14.8.2007, 21:17 -------------------- ![]() |
||||
|
|||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Бывают глюки с отрисовкой.
Вот именно. Я про хедер и говорю. С ним глюки ужасные. В принципе и хедеры скинятся. Но только статичные. И криво. Не перерисовываются. А динамические глючат на полную. То есть использование, как листвью невозможно. Особенно при динамическом построении. Вот и приходится отрубать. Но енто оффтоп... |
|||
|
||||
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
В принципе, я делал проще, наверно поэтому и не замечал глюков. Я назначал хидеру основной для скина цвет (есть в alphaskins такой параметр)... ну и пару раз руками рисовал хедеры. Я вообще понемногу огорчаюсь в AlphaSkins, наверно придется другую библиотеку подбирать ![]() Простите за оффтоп... -------------------- ![]() |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: нет Всего: 13 |
Вообще, странный подход "это сложно - откажись". Мне интересно. Хочу сделать. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Не такой уж и странный. Зачем что-то делать если это уже сделано за тебя. Цель не оправдывает средства. Если бы программисты писали все всегда с нуля... так бы и жили бы в каменном веке до сих пор. Похвально, тогда тебе сюда. Более полной документации нигде не найдешь. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Addmin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 3.2.2006 Где: сослан в Сибирь Репутация: нет Всего: 15 |
Ага, и на "Эльбрусе" работали! -------------------- SimpleFit.ru - блог о том, как заниматься спортом нормальным людям -- Стимул работы в Сибири - комары. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |