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

Поиск:

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


Опытный
**


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

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



Цитата(PalR @ 17.4.2005, 11:07)
Главное работает.

Это можно было сделать и без "изменения" кода компонента. Просто после изменения правил (в том числе изменения делимитеров) нужно написать:
Код

  SynUniSyn1.Prepare(); // подсветка должна переформировать дерево токенов
  SynEdit1.Repaint(); // редактор нужно перерисовать, чтобы увидеть изменения


Цитата(PalR @ 17.4.2005, 11:07)
Тут правда обнаружилось следующее.

Я предлагаю для этой задачи немного другой подход. Создать один раз правило для подсветки вводимого слова, а потом просто изменять свойство этого правила smile
Это мне кажется более логичным, да и не надо каждый раз всё очищать/загружать/перезагружать smile

Вот наваял небольшой примерчик работы такого приложения (файлик прикрепляю).
Там кнопка "Добавить делимитеры" - добавляет маленькие русские буквы в список разделителей. Этот код можно поместить на создание твоего приложения smile
Далее вводишь слово и нажимаешь "Подсветить" - программа подсветит слово во всём тексте.
Пользуйся на здоровье smile
Кстати, там используется последняя версия компонента (ver 1.8 от 4 ноября 2004), так что настоятельно рекомендую скачать именно её smile Там и ошибок по меньше, и возможностей по больше smile

Цитата(PalR @ 17.4.2005, 11:07)
Чем отличаются
SynUniSyn.MainRules.Reset;
и
SynUniSyn.MainRules.Clear;

Reset - разрушает дерево токенов, но сохраняет все правила. Эта продедура вызывается перед созданием дерева токенов при подготовке (Prepare) подсветки для подсветки (извини за тавталогию) smile
Clear - разрушает и дерево токенов и все правила. Т.о. после вызова этой процедуры подсветка не будет содержать ни одного правила smile

Highlight word (source).zip (3k)

Это сообщение отредактировал(а) Vitalik - 17.4.2005, 15:17

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  Highlight_word__source_.zip
PM MAIL WWW ICQ YIM   Вверх
Vitalik
Дата 17.4.2005, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А вот исходники вместе с exe (на всякий случай):

Highlight word (source+exe).zip (298k)

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  Highlight_word__source_exe_.zip
PM MAIL WWW ICQ YIM   Вверх
PalR
Дата 17.4.2005, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо. Попробую.
Пора версию 1.81 собирать. Где добавить в ключевых словах "Может быть частью слова".
Цитата(Vitalik @ 17.4.2005, 15:15)
Я предлагаю для этой задачи немного другой подход

К тому моменту других рабочих вариантов не было. Что пришло в голову то и реализовал.
PM MAIL   Вверх
Vitalik
Дата 15.5.2005, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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




 ! 
 
Обсуждение инсталлятора для компонента вынесено в отдельную тему "Инсталлятор для компонента"

PM MAIL WWW ICQ YIM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




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


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

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