![]() |
|
Модераторы: Vitalik |
![]()
|
|
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
Мне надо подсветить например слово "форум" и все слова где оно является частью слова в тексте, например "форумчанин".
Этот компонент мне поможет или нет? А то я весь вечер бьюс. Целые слова выделяет а части нет. |
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
PalR, с текущей реализацией компонента, такого эффекта можно добиться, если добавить символы 'ф', 'о', 'р', 'у', 'м' в список разделителей родительского (в Вашем случае, наверное, корневого) диапазона.
Тогда парсер будет останавливаться на этих символах и найдёт лексему 'форум' в слове 'форумчанин'. Я вот думаю, может для правила "ключевое слово" сделать отдельное свойство: разделители, которое отностилось бы только к нему... А то вот в данном случае как-то нехорошо получается изменять так разделители родительского диапазона... Или может свойство сделать для правила "ключевое слово" отдельное свойство: "может быть частью слова"... |
|||
|
||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
Будь человеком примерчик накидай.
ЗЫ:У меня почему то не компилится HglEditor_source. [Fatal Error] HighlightsU.pas(132): File not found: 'SynUniClasses.dcu' D7, synedit-cvs-2005-02-26, unihighlighter не помню какой, вчера качнул. Чего ещё не хватает. Инсталятор бы этим пакетам. Пока поставил .... . Это сообщение отредактировал(а) PalR - 5.4.2005, 21:18 |
|||
|
||||
| Vitalik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Примерчик накидал, прикрепляю к сообщению. Правда выплыл недостаток: теперь эти символы считаются разделителями слов, то есть если с нажатой клавишей Ctrl бегать курсором влево и вправо, то в словах курсор будет останавливаться на буквах ф, о, р, у, м, а по отдельности он эти буквы за слова считать не будет и не остановится на них. Вот такие дела... В связи с этим вопрос: может тогда отдельно сделать задание символов-разделителей и отдельно символов, на которых нужно останавливаться парсеру... Правда я давно не лез в исходники компонента и уже точно не помню можно ли разделить эти понятия...
У меня тоже Delphi 7 и тоже последний cvs'ный SynEdit. А UniHighlighter ты откуда качал? Это важно, так как для компиляции этого HglEditor_source необходима именно последняя версия UniHighlighter'a (версия 1.8 от 4 ноября). Конечно, при большом желании можешь использовать и старую версию. По идее надо лишь убрать этот SynUniClasses из uses HglEditor'a. Но лучше скачай последнюю версию
Да... Инсталлятор был бы удобен. Но я не предсавляю пока, как его писать. У тебя есть инфа по этому поводу? Или может знаешь как можно написать инсталлятор для пакетов Delphi?.. Присоединённый файл ( Кол-во скачиваний: 7 )
Sample.hgl |
||||||
|
|||||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
Спасибо. Сейчас попробую.
Насчет инсталятора пока помочь не могу. Если будет какая инфа о создании, то отпишусь обязательно. Я недавно ставил большой пакет JVCL. Там вот инсталер несколько своеобразный. Но отработал четко. Это сообщение отредактировал(а) PalR - 6.4.2005, 21:31 |
|||
|
||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
Да версия была не та. Поставил стало компилиться. Только пока не разобрался как динамически загрузить слово "ф", "о", "р", "у", "м".
|
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Что ты имеешь ввиду под "динамически загрузить слово"? |
|||
|
||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
Vitalik
Ну тоесть в результате работы программы был некий текст. Теперь нужно подсветить слово("форум). Подсветили, посмотрели, оч хорошо. Поделали с прогой чего то, опять сфортировался некий текст, но уже другой. Теперь нужно подсветить слово "привет"(и естественно везде где оно встречается как часть слова "приветливый"). Опять поработали............................подсветить слово "дом" и т.д. Т.е. загружать слова из Edit, например, или ещё откуда, куда ввел пользователь. |
|||
|
||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
А как добавить свои Delimiters. В конструкторе добавляется. А при компиляции пропадают и ставятся дефолтные. А где дефолтные прописаны. Я бы туда вписал.
Метод изменения ещё чего нибудь ещё для сохранения изменений в SynUniSyn не помогает. |
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Добавляются свои Delimiters обыкновенно:
Но, странное дело... Добавляться они добавляются, но почему-то ключевые слова подсвечиваются также... Пока что не могу понять почему так происходит... Это сообщение отредактировал(а) Vitalik - 10.4.2005, 14:29 |
|||
|
||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
Вышел из положения переделав под свою задачу исходник старой версии. Работает так как мне надо.
|
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
А что ты там переделал? |
|||
|
||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
В делимитеры добавил весь алфавит.
|
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Оригинально Это сообщение отредактировал(а) Vitalik - 16.4.2005, 18:33 |
|||
|
||||
| PalR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 5.4.2005 Репутация: нет Всего: нет |
Главное работает.
Тут правда обнаружилось следующее. Объясню на старом примере. Подсветил слово "форум". Посмотрел. Очистил SynEdit. Опять запихал в него текст. Теперь подсветил слово "дом". Всё нормально. Стал прокручивать текст (ну очень он у меня большой) и глядь, а слово "форум" тоже подсветилось. А мне оно не надо. Я так понимаю что где то ещё чего то надо очистить. Делаю как в примере.
Чем отличаются SynUniSyn.MainRules.Reset; и SynUniSyn.MainRules.Clear; С последним лучше. Это сообщение отредактировал(а) PalR - 17.4.2005, 12:08 |
|||
|
||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |