Модераторы: Vitalik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсветить слово "форум" и все слова, где оно является частою слова 
:(
    Опции темы
PalR
Дата 5.4.2005, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Мне надо подсветить например слово "форум" и все слова где оно является частью слова в тексте, например "форумчанин".
Этот компонент мне поможет или нет? А то я весь вечер бьюс. Целые слова выделяет а части нет.
PM MAIL   Вверх
Vitalik
Дата 5.4.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



PalR, с текущей реализацией компонента, такого эффекта можно добиться, если добавить символы 'ф', 'о', 'р', 'у', 'м' в список разделителей родительского (в Вашем случае, наверное, корневого) диапазона.
Тогда парсер будет останавливаться на этих символах и найдёт лексему 'форум' в слове 'форумчанин'. smile

Я вот думаю, может для правила "ключевое слово" сделать отдельное свойство: разделители, которое отностилось бы только к нему... А то вот в данном случае как-то нехорошо получается изменять так разделители родительского диапазона... Или может свойство сделать для правила "ключевое слово" отдельное свойство: "может быть частью слова"...

PM MAIL WWW ICQ YIM   Вверх
PalR
Дата 5.4.2005, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Vitalik
Дата 6.4.2005, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(PalR @ 5.4.2005, 21:10)
Будь человеком примерчик накидай.

Примерчик накидал, прикрепляю к сообщению.
Правда выплыл недостаток: теперь эти символы считаются разделителями слов, то есть если с нажатой клавишей Ctrl бегать курсором влево и вправо, то в словах курсор будет останавливаться на буквах ф, о, р, у, м, а по отдельности он эти буквы за слова считать не будет и не остановится на них.
Вот такие дела...
В связи с этим вопрос: может тогда отдельно сделать задание символов-разделителей и отдельно символов, на которых нужно останавливаться парсеру... Правда я давно не лез в исходники компонента и уже точно не помню можно ли разделить эти понятия... smile

Цитата(PalR @ 5.4.2005, 21:10)
ЗЫ:У меня почему то не компилится HglEditor_source.
[Fatal Error] HighlightsU.pas(132): File not found: 'SynUniClasses.dcu'
D7, synedit-cvs-2005-02-26, unihighlighter не помню какой, вчера качнул.

У меня тоже Delphi 7 и тоже последний cvs'ный SynEdit. А UniHighlighter ты откуда качал? Это важно, так как для компиляции этого HglEditor_source необходима именно последняя версия UniHighlighter'a (версия 1.8 от 4 ноября).
Конечно, при большом желании можешь использовать и старую версию. По идее надо лишь убрать этот SynUniClasses из uses HglEditor'a.
Но лучше скачай последнюю версию smile

Цитата(PalR @ 5.4.2005, 21:10)
Чего ещё не хватает. Инсталятор бы этим пакетам. Пока поставил .... .

Да... Инсталлятор был бы удобен. Но я не предсавляю пока, как его писать. У тебя есть инфа по этому поводу? Или может знаешь как можно написать инсталлятор для пакетов Delphi?..

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Sample.hgl
PM MAIL WWW ICQ YIM   Вверх
PalR
Дата 6.4.2005, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Спасибо. Сейчас попробую.
Насчет инсталятора пока помочь не могу. Если будет какая инфа о создании, то отпишусь обязательно.
Я недавно ставил большой пакет JVCL. Там вот инсталер несколько своеобразный. Но отработал четко.

Это сообщение отредактировал(а) PalR - 6.4.2005, 21:31
PM MAIL   Вверх
PalR
Дата 6.4.2005, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Да версия была не та. Поставил стало компилиться. Только пока не разобрался как динамически загрузить слово "ф", "о", "р", "у", "м".
PM MAIL   Вверх
Vitalik
Дата 7.4.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(PalR @ 6.4.2005, 21:01)
Только пока не разобрался как динамически загрузить слово "ф", "о", "р", "у", "м".

Что ты имеешь ввиду под "динамически загрузить слово"? smile
PM MAIL WWW ICQ YIM   Вверх
PalR
Дата 7.4.2005, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Vitalik
Ну тоесть в результате работы программы был некий текст. Теперь нужно подсветить слово("форум). Подсветили, посмотрели, оч хорошо. Поделали с прогой чего то, опять сфортировался некий текст, но уже другой. Теперь нужно подсветить слово "привет"(и естественно везде где оно встречается как часть слова "приветливый"). Опять поработали............................подсветить слово "дом" и т.д.
Т.е. загружать слова из Edit, например, или ещё откуда, куда ввел пользователь.
PM MAIL   Вверх
PalR
Дата 8.4.2005, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



А как добавить свои Delimiters. В конструкторе добавляется. А при компиляции пропадают и ставятся дефолтные. А где дефолтные прописаны. Я бы туда вписал.
Метод изменения ещё чего нибудь ещё для сохранения изменений в SynUniSyn не помогает.
PM MAIL   Вверх
Vitalik
Дата 10.4.2005, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Добавляются свои Delimiters обыкновенно:
Код
  SynUniSyn1.MainRules.TermSymbols :=
    SynUniSyn1.MainRules.TermSymbols + ['ф', 'о', 'р', 'у', 'м'];
  SynEdit1.Repaint();

Но, странное дело... Добавляться они добавляются, но почему-то ключевые слова подсвечиваются также... Пока что не могу понять почему так происходит...

Это сообщение отредактировал(а) Vitalik - 10.4.2005, 14:29
PM MAIL WWW ICQ YIM   Вверх
PalR
Дата 15.4.2005, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Вышел из положения переделав под свою задачу исходник старой версии. Работает так как мне надо.
PM MAIL   Вверх
Vitalik
Дата 16.4.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(PalR @ 15.4.2005, 22:38)
Вышел из положения переделав под свою задачу исходник старой версии. Работает так как мне надо.

А что ты там переделал? smile
PM MAIL WWW ICQ YIM   Вверх
PalR
Дата 16.4.2005, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



В делимитеры добавил весь алфавит.
PM MAIL   Вверх
Vitalik
Дата 16.4.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(PalR @ 16.4.2005, 16:58)
В делимитеры добавил весь алфавит.

Оригинально smile

Это сообщение отредактировал(а) Vitalik - 16.4.2005, 18:33
PM MAIL WWW ICQ YIM   Вверх
PalR
Дата 17.4.2005, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Главное работает.
Тут правда обнаружилось следующее.
Объясню на старом примере. Подсветил слово "форум". Посмотрел. Очистил SynEdit. Опять запихал в него текст. Теперь подсветил слово "дом". Всё нормально. Стал прокручивать текст (ну очень он у меня большой) и глядь, а слово "форум" тоже подсветилось. А мне оно не надо.
Я так понимаю что где то ещё чего то надо очистить. Делаю как в примере.
Код

    SynUniSyn.MainRules.Reset;
    SynEdit.Highlighter:=nil;
    SynSymbolGroup:=TSynSymbolGroup.Create('',TSynHighlighterAttributes.Create('unknown'));


Чем отличаются
SynUniSyn.MainRules.Reset;
и
SynUniSyn.MainRules.Clear;
С последним лучше.

Это сообщение отредактировал(а) PalR - 17.4.2005, 12:08
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.