![]() |
Модераторы: 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 |
|||
|
||||
Vitalik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
![]()
Стрянно... Я, конечно, с этим вопросом не разбирался, но меня терзают смутные сомнения... Вот к примеру, vcl70.bpl и rtl70.bpl. Вместе они занимают 2 с лишним метра. Эти bpl-ки всегда встраиваются в exe-шник, если мы используем vcl-компоненты. Так не все же эти 2 метра каждый раз присоединяются к exe-шнику! А только те модули, которые используются в приложении. Или хотя бы взять "редакторы свойств" для компонента. Не могут же эти редакторы, которые Delphi использует только на этапе конструирования формы каждый раз включаться в exe-шник? Это было бы очень глупо со стороны разработчиков Delphi! |
||||
|
|||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:43 |
|||
|
||||
Vitalik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Тебя? Как это? ![]()
Ты как-то абсолютно неправильно меня процитировал! Я писал: 1). "Кому не нужен дизайнер в программе (из-за размера исполняемого файла или по другим причинам), могут его безболезненно не использовать." (здесь) 2). "Как ты предполагаешь (после твоего разделения дизайнера) на этапе конструирования формы задать правила для нашего компонента?" (здесь) Как видишь, никакого противоречия! ![]()
А, кстати, теперь ведь тогда станет не очень удобно в run-time подсветку то редактировать! Нужно либо каждый раз предлагать выбирать где же находится дизайнер, либо где-то отдельно хранить его местоположение... Что есть очень не хорошо... |
||||||
|
|||||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:44 |
|||
|
||||
Vitalik |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Здрасти! Приехали! ![]() А что по твоему делается в файле SynUniReg.pas?
Это ты о чём? Что ты имеешь ввиду?
Подожди, разве "редактировать подцветки" и "задавать правила" - это не одно и тоже??? Как это ни прискорбно, но похоже мы друг друга совсем не понимаем... Нужно определиться со словарём терминов, чтобы разговаривать не на разных языках...
Теоретически это было бы не плохо, но: 1). Мало кто быстро среагирует на создание опроса. 2). С тем же результатом можно здесь выкладывать свои мнения, но пока что в обсуждении учавствуем только мы вдвоём 3). Мы сами друг друга похоже не до конца понимаем, а тут еще предлагать голосовать не разобравшись в проблеме... Поэтому пока что буду ждать твоего ответа... |
||||||||||
|
|||||||||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:45 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |