![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
В общем пишу подсветку синтаксиса через RichEdit (ну практически через заднее отверстие), поскольку SynEdit меня не устроил, а остальные нужно изучать и там везде свои заморочки.
Пошел на военную хитрость при открытии файла - я открываю его в невидимом RichEdit'е, раскрашиваю (здесь главная фишка в том, что раскраска в невидимом компоненте немного быстрей, чем в видимом, а для такого тормоза как RichEdit это очень важно). Теперь мне надо перекинуть весь текст с форматированием из невидимого RichEdit'а в редактор для программиста. Нашел, подсмотрел в DRKB ![]() Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 27.01.2010 в 09:06. |
|
![]() |
![]() |
![]() |
#2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,671
|
![]()
Вот так?
Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Тут оказалось все не так просто. Собственно я уже думал и через файл и через буфер обмена. Но проблема теперь в другом - раскраска на невидимом компоненте происходит не так как на видимом. Сейчас сравниваю свойства обоих компонентов.
Собственно даже не это страшно. Попробовал подсвечивать другой видимый RichEdit (не тот, что до этого) - правильная подсветка осуществляется только в первом. Хотя код построен так, что не зависит от компонента в котором будет осуществляться подсветка.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 27.01.2010 в 09:25. |
![]() |
![]() |
![]() |
#4 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Может все-таки написать свой Edit? Да, потратися больше времени (для умельца хватит суток), но во-первых если продумать, то будет быстрее, во-вторых удобнее, в третьих свои спец функи можно там всунуть.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Она находит ключевые символьные обозначения (например ключевые слова языка) и применяет к ним свое форматирование. Это все уже очень устарело. Этим грешит даже сам Делфи. Например напиши в нем Код:
Меня вообще поначалу это злило. Я пришел после Бейсика и всегда забывал ставить точку с запятой в конце. Вот забудешь и потом долго не въедешь почему Делфи указывает на нормальную конструкцию и говорит, что там все не правильно.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#6 | |||
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]() Цитата:
Цитата:
Цитата:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|||
![]() |
![]() |
![]() |
#7 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
А я не хочу, чтобы после моих недоделок люди привыкали.
Цитата:
Цитата:
Но в будущем подумываю, о том, чтобы через него все это дело перетащить в линукс.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
||
![]() |
![]() |
![]() |
#8 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
С мемо это делается очень просто Text -> Text. Я так змейку текстовую делал, один мемо - буфер, другой - на экран. Добился что даже мерцания не было. Но подозреваю что RichEdit штука сложная, и текст c форматированием так просто не перекинешь одной строкой (я имею ввиду не строку кода, а переменную string). Может быть можно как-то покопаться внутри его и целиком кусок памяти копировать, кстати Assign не пробовали?
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)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Assign пробовал, но у меня выходит копировать только текст без форматирования.
Ну в целом я добился чего хотел - через потоки (см. пост 1). Также и работаю - подсвечиваю код в тени, а потом отображаю для программера. Скорости добился за счет того, что подсвечиваю не все, а только тот фрагмент, который будет в данный момент отображаться перед глазами. Но постоянно вылазиют какие-то бяки, объяснить которые можно пятнами на Солнце.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форматирование текста | Tomoyo | HTML и CSS | 2 | 18.07.2013 19:33 |
Форматирование текста | Sergey2 | Общие вопросы Delphi | 10 | 23.09.2009 08:04 |
Форматирование текста. | Altera | Общие вопросы Delphi | 3 | 11.05.2009 23:29 |
Форматирование текста | MAcK | Общие вопросы Delphi | 3 | 03.04.2008 11:38 |
Форматирование текста | rusif | Помощь студентам | 1 | 17.12.2007 22:28 |