![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Aehn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 24.4.2008 Репутация: нет Всего: нет |
Есть такая задача:
текст находится в Memo:TSynMemo; В EditSearch:TEdit находится некий текст/слово. Кнопка PressMe:TButton Необходимо при нажатии на кнопку в тексте Memo найти все включения, соответствующие содержимому EditSearch, с подсветкой ВСЕХ этих включений. Осуществить замену подсвеченного. Пробовал Memo.SelStart:= позиция в строке; Memo.SelLength:= протяженность подсветки; Не дало нужного результата; Пробовал вызывать функцию Memo.SearchReplace(EditSearch.Text,EditSearch.Text, ??? ); Но не понял, как задавать Option:TSynSearchOption; Если не трудно, поделитесь идеями с нужными методами и (главное) способами их воплощения! |
|||
|
||||
Frees |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
а что дало, и что не так
TSynSearchOption = (ssoMatchCase, ssoWholeWord, ssoBackwards, ssoEntireScope, ssoSelectedOnly, ssoReplace, ssoReplaceAll, ssoPrompt); ssoSelectedOnly выделит вхождения -------------------- Кольцов Виктор Владимирович |
||||
|
|||||
morpheyushka |
|
||||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Функция замены в строке всех вхождений одной подстроки на другую В отличие от других подобных функций, эта - не зависнет, если в строке нужно заменить не только одно слово совершенно другим, но и допустим, слово "Штаны" на "-Штаны-" (Т.е. начальное слово после замены остается, но к нему добавляется какой нибудь символ справа, или слева. В данном случае по краям слова добавлен знак минуса). Я пересмотрел много примеров, и ни один из них не справился с этой задачей. (Может я плохо искал?). Зависимости: Windows, SysUtils Автор: Матюшкин Сергей, [email protected], ICQ:162733776, Днепропетровск Copyright: Sergey_M Дата: 26 мая 2003 г. ***************************************************** }
или 2-ой вариант:
|
||||
|
|||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
morpheyushka,
это случмаем не тоже самое что ReplaceStr из StrUtils? -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Aehn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 24.4.2008 Репутация: нет Всего: нет |
[QUOTE=Frees, 26.6.2008, 12:38, post1562398]
а что дало, и что не так Memo.SelStart := 10; Memo.SelLength :=20; Memo.SelStart := 50; Memo.SelLength :=20; Дает сплошную подсветку. Мне же нужно такое: У попа была собака, Он ее любил Она съела, кусок мяса Он ее убил Ну и еще! Почему var Option:TSynSearchOption; ошибка? И как мне сделать: Options:=Options+[ssoSelectedOnly]; Можно пример, если не очень трудно? Это сообщение отредактировал(а) Aehn - 26.6.2008, 14:39 |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
помоему ты мудриш там скорее всего вот так Memo.SearchReplace(EditSearch.Text,EditSearch.Text, ssoSelectedOnly ); -------------------- Кольцов Виктор Владимирович |
|||
|
||||
morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
||||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
если бы у тя был не просто мемо а RichEdit то можно было бы так выделять
Добавлено через 2 минуты и 4 секунды и еще SynEditTypes в uses напиши -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Aehn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 24.4.2008 Репутация: нет Всего: нет |
и еще SynEditTypes в uses напиши
Кажется он и не описан!. Это сообщение отредактировал(а) Aehn - 26.6.2008, 15:27 |
|||
|
||||
Aehn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 24.4.2008 Репутация: нет Всего: нет |
Memo.SearchReplace(EditSearch.Text,EditSearch.Text, ssoSelectedOnly );
Все-таки правильно будет Memo.SearchReplace(EditSearch.Text,EditSearch.Text, [ssoSelectedOnly]); Потому что ssoSelectedOnly - элемент множества. Тогда работает поиск и выделение первого найденного элемента. А мне нужно, чтобы было выделение всех элементов, идентичных с EditSearch.Text Это сообщение отредактировал(а) Aehn - 26.6.2008, 16:11 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |