![]() |
Модераторы: Vitalik |
![]() ![]() ![]() |
|
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: нет Всего: 57 |
Для тех, кому лень скачивать и экспериментировать
![]() На сколько раздувается прога в объёме при использовании компонента (в объёме)? Есть ли длительные процессы, тормозящие загрузку проги? |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Сам UniSynHignlighter весит не много, но базовый редактор SynEdit довольно большой, думаю на 100-200 кб тянет... Тормозить - не тормозит, разве что если очень большой свод правил, например несколько списков по несколько тысяч ключевых слов... На стандартных расскрасках тормозов нет.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
SCHMaster |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.11.2004 Репутация: нет Всего: нет |
Гм... Ну с размером то я согласен. А вот с торможением - нет. Т.е. да, подтормаживает и не слабо. Зависит это, действительно, от кол-ва правил подсветки. Но не только. Еще: 1. от размера файла - чем больше текста приходится "обрабатывать", тем дольше загрузка (вполне естественно). 2. ![]() Так что... Ничего "военного" и страшного нет - скорость загрузки не медленнее, чем у любого редактора с подсветкой синтаксиса. Но, вроде, здесь не TSynEdit обсуждать собрались? А SynUniHighlighter. Действительно универсальная штучка. Если кто юзал TSynEdit - рекомендую. Если неюзал - поюзайте сперва без SynUniHighlighter, а потом с ним ![]() |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
С какой тихой радости? ![]() ![]() -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Да, собственно сама подкраска происходит только того, что видно на экране. Но фактически при загрузке файла SynEdit пробегает весь этот файл с помощью связанного с ним компонента подсветки (например, SynUniHighlighter). Он это делает для того, чтобы выяснить какие строки начинаются с каких диапазонов. После этого он этим списочком диапазонов активно пользуется для быстрой раскраски текста при редактировании... Я думаю этот первый (глобальный) проход текста можно будет как-нибудь использовать... Но пока что я не вижу хороших способов облегчить этот первый проход. Разве что при первом проходе не искать токены в ключевых словах... Хм... А это может помочь! Вот только может быть будут проблемы с определением этого первого прохода... Ведь по идее компонент подсветки не знает для чего его в данный момент используют - то ли для первого пробега всего файла, то ли собсвтвенно для подсветки текста на экране... |
|||
|
||||
SCHMaster |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.11.2004 Репутация: нет Всего: нет |
2Vit
Vitalik тебе ответил. Если неверишь - пройдись "пошагово" при компиляции...
Всего лишь ответ не вопрос
А SynUniHighlighter это все-таки для TSynEdit прибамбас ![]() |
||||||
|
|||||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Не знал, для самого было откровение ![]() -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
SCHMaster |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.11.2004 Репутация: нет Всего: нет |
Vit
Я тоже не так давно узнал, хотя TSynEdit юзаю не первый год. А узнал, пытаясь найти где "оно" притормаживает ![]() ![]() |
|||
|
||||
Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Удивительно!
У джедаев тормозит сильнее чем сам TSynEdit, но джедаи подкрашивают только то что видно ![]() ![]() -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 19.5.2011, 16:34 |
|||
|
||||
Vitalik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Что это за джедаи такие? ![]()
А разве, даже если не использовать SynUniDesigner в uses, он всё равно будет "сидеть" в приложении? ![]() |
||||||
|
|||||||
Monty |
|
||||||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Это я у себя проверел ... ее нет в секции RCDATA ... если форма создается не динамически
А. Это я так JEDI называю ![]() ![]()
Не верю! И я вчера пошагово до омерзенья допроходился ![]() Подсвечиваются только видимые слова ... а точне, видимые строки! Кстати, чтобы небыло разберихи, я подмечу что проверял я на стандартных подсветках SynHighlighter*.pas ![]() -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
||||||
|
|||||||
Vitalik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Весело ![]() ![]()
Ты правильно подметил: подсвечиваются только видимые строки. А как ты думаешь почему? Как удаётся SynEdit'у узнавать в каком диапазоне (обычный текст, комментарий, строка и т.п.) мы находимся? Ведь для этого пришлось бы знать, что находится в тексте до видимой на экране строки. Так вот я имел ввиду, что при загрузке текста в SynEdit, он вначале пробегается по всему файлу с помощью процедур SetLine и Next и с помощью процедуры GetRange определяет какой сейчас диапазон на начале строки (и так для каждой строчки). Потом он этой информацией пользуется для ускорения подсветки видимой части текста на экране ![]() Вот это-то и имелось ввиду. "Все беды от недостатка информации" - сказал кто-то...
А оно по идее и не имеет значения на каких подсветках проверять... SynEdit ко всем подсветкам (будь то его стандартным, будь то изысканный UniHighlighter) отностися абсолютно одинаково ![]() |
||||||
|
|||||||
Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Толко что хотел спросит насчет Рангов ![]() ![]() ps. все думал, а если мы загрузим текст и быстро его пролистаем вниз ... ![]() -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 19.5.2011, 16:30 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |