Форум Херсона. Форум Херсонской молодежи, флейм, фотографии Херсона, политика в Херсоне, сетевой форум, сети Херсона


Приветствуем на Форум Херсона. Форум Херсонской молодежи..

На данный момент Вы находитесь на форуме как Гость и имеете очень ограниченные возможности и права. Что бы писать или отвечать в темах, загружать картинки, файлы на форуме Вам нужно зарегистрироваться, что совершенно бесплатно. Регистрация очень быстрая, не откладывайте эту процедуру!

Если возникнут проблемы с регистрацией напишите нам.

Галерея форума Блоги пользователей Список банов
Вернуться   Форум Херсона. Форум Херсонской молодежи. > >
Регистрация СправкаСтатистика Пользователи Календарь Сообщения за день

Программирование Все вопросы по написанию программ

Ответ
 
Опции темы
Старый 06.05.2008, 19:47   #1 (Ссылка на пост)
Мимо проходил
 
Активность Longevity
0/20 17/20
Today Сообщения
0/5 sssssss13
Благодарил(а): 2
Благодарили 0 раз в 0 постах
Галерея: 0
Вес репутации: 0 Zver идет по правильному пути
Отправить сообщение для  Zver с помощью ICQ
поиск в RichEdit

помогите плиз, бо я не очень шарю в Delphi)
есть функция, которая осуществляет поиск и выдиление определенного текста в RichEdit, всё в ней хорошо, но... она выделяет только одно(последние) из найденых слов(
Как сделать так, чтобы она выделяла все найденные слова?

function SearchForText_AndSelect(RichEdit: TRichEdit; SearchText: string): Boolean;
var
StartPos, Position, Endpos: Integer;
begin
StartPos := 0;
with RichEdit do
begin
Endpos := Length(RichEdit.Text);
Lines.BeginUpdate;
while FindText(SearchText, StartPos, Endpos, [stMatchCase])<>-1 do
begin
Endpos := Length(RichEdit.Text) - startpos;
Position := FindText(SearchText, StartPos, Endpos, [stMatchCase]);
Inc(StartPos, Length(SearchText));
SetFocus;
SelStart := Position;
SelLength := Length(SearchText);
end;
Lines.EndUpdate;
end;
end;
Zver вне форума  
Ответить с цитированием
Старый 06.05.2008, 21:05   #2 (Ссылка на пост)
Модератор
 
Аватар для ustas
Пол:
 
Активность Longevity
0/20 18/20
Today Сообщения
0/5 ssss12443
Благодарил(а): 30,810
Благодарили 37,603 раз в 8,037 постах
Галерея: 0
Вес репутации: 401 ustas скоро в модераторыustas скоро в модераторыustas скоро в модераторы
ustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторыustas скоро в модераторы
Post

вооружайся книгами и справочной системой и вперед
вот можешь такое вот выделение бэкграунда использовать, как маркер в ворде

uses
RichEdit;

procedure RE_SetSelBgColor(RichEdit: TRichEdit; AColor: TColor);
var
Format: CHARFORMAT2;
begin
FillChar(Format, SizeOf(Format), 0);
with Format do
begin
cbSize := SizeOf(Format);
dwMask := CFM_BACKCOLOR;
crBackColor := AColor;
Richedit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
end;
end;

Последний раз редактировалось ustas, 06.05.2008 в 21:07.
ustas вне форума  
Ответить с цитированием
Старый 07.05.2008, 09:33   #3 (Ссылка на пост)
Местные мы
 
Аватар для Marchello
Пол:
 
Активность Longevity
0/20 17/20
Today Сообщения
0/5 ssssss509
Благодарил(а): 457
Благодарили 620 раз в 179 постах
Галерея: 0
Вес репутации: 23 Marchello известное всем имяMarchello известное всем имяMarchello известное всем имяMarchello известное всем имяMarchello известное всем имя
Цитата:
Сообщение от Zver Посмотреть сообщение
есть функция, которая осуществляет поиск и выдиление определенного текста в RichEdit, всё в ней хорошо, но... она выделяет только одно(последние) из найденых слов(
Как сделать так, чтобы она выделяла все найденные слова?

Пример случаем не с delphisources брал ?
Смотри, попробуй открыть там блокнот с текстом и попробуй выделить
несколько слов, наверное не выйдет. Так как выделить можно один цельный кусок (вот у тебя и выходит выделенное последнее слово).
Тебе наверное кроме выделения нужно поменять цвет текста - это более реально и наглядно.
То есть, когда у тебя есть выделенный кусок после:
SelStart := Position;
SelLength := Length(SearchText);
Там должно быть проперти типа SelAttributes
а у него есть Color. То есть так:

SelStart := Position;
SelLength := Length(SearchText);
SelAttributes.Color := someColor;

Так как при каждом новом SelStart := Position; - будет теряться
предыдущее выделение.

PS. А вот работает ли сам код поиска - я не знаю. Так стремно
написан... я еще и Делфи совсем забыл то.
Marchello вне форума  
Ответить с цитированием
Сказали Спасибо пользователю Marchello за этот пост:
ustas (07.05.2008)
Старый 07.05.2008, 12:33   #4 (Ссылка на пост)
Мимо проходил
 
Активность Longevity
0/20 17/20
Today Сообщения
0/5 sssssss13
Благодарил(а): 2
Благодарили 0 раз в 0 постах
Галерея: 0
Вес репутации: 0 Zver идет по правильному пути
Отправить сообщение для  Zver с помощью ICQ
Цитата:
SelAttributes.Color := someColor;
то что нужно! , спасибо ОГРОМНОЕ!!!!
ЗЫ код рабочий)
Zver вне форума  
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 

Ваши права в разделе
Вы не можете создавать темы
Вы можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск родных... Rammf Архив 8 16.08.2007 18:09
Поиск квартиры Neo Общие 2 29.09.2005 19:33
Поиск кряка Фидель Програмное обеспечение 4 28.11.2004 07:41


Время на сервере: 11:01.

Регистрация Справка Пользователи Календарь Сообщения за день

vBulletin 3, Copyright © 2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co