Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2008, 14:05   #1
mauar
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 27
По умолчанию поиск в RichEdit

Сделал поиск по RichEdit:
Функция такая :

Код:
function SearchText_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
      Position := FindText(SearchText, StartPos, Endpos, [stMatchCase]);
      Endpos   := Length(RichEdit.Text) - startpos;
      Inc(StartPos, Length(SearchText));
      SetFocus;
      SelStart  := Position;
      SelLength := Length(SearchText);
    end;
    Lines.EndUpdate;
  end;
end;
По нажатиию кнопки выполнить:
Код:
SearchText_AndSelect(TMSForm1.RichEdit1  , Edit1.Text);
Поиск идет в RichEdit1 из компонента Edit1.

Как убрать поиск по регистру, а то если слово с заглавной буквы то он это слово не находит.
И как сделать так чтобы RichEdit прокрутился в то место где находится найденное слово.
mauar вне форума Ответить с цитированием
Старый 05.05.2008, 14:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

stMatchCase убери.

Я б искал так:
Код:
RichEdit1.SelStart:=RichEdit1.FindText('0',0,length(RichEdit1.Text),[]);
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
Это с прокруткой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2008, 14:36   #3
mauar
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
stMatchCase убери.

Я б искал так:
Код:
RichEdit1.SelStart:=RichEdit1.FindText('0',0,length(RichEdit1.Text),[]);
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
Это с прокруткой.
Не не работает, ты же видишь у меня функция прикрученна
mauar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RichEdit Killbrum Помощь студентам 3 12.06.2008 22:41
RichEdit StartMis Общие вопросы Delphi 20 24.04.2008 15:40
RichEdit nimf Общие вопросы Delphi 8 23.04.2008 07:55
RichEdit и *.gif Teen4jump Общие вопросы Delphi 2 03.04.2008 10:10
поиск и замена текста в RichEdit Vasya Помощь студентам 11 16.03.2007 06:48