Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

поиск в Richedit


Flea ©   (2005-11-14 22:14:00) 

добрый вечер! есть функция
richedit1.RE_SearchText('w',false,false,true,0,length(richedit1.Text))
она возвращает номер символа только если это один английский символ, в данном случае w. если больше одного, или это русский символ - то результат -1. скажите пожалуйста, так должно быть или где-то ошибка?


Flea   (2005-11-16 21:38:00) [1]

большое спасибо. заработало


Vladimir Kladov   (2005-11-16 10:48:00) [2]

я добавлю но как отдельный метод RE_WSearchText.
Там должно быть сообщение не EM_FINDTEXT а EM_FINDTEXTW = WM_USER+123. Windows9x не должен поддерживать вообще WideString.


MTsv DN   (2005-11-16 08:46:00) [3]

Привет...

Надо изменить здесь:

function RE_SearchText( const Value: WideString; MatchCase, WholeWord, ScanForward: Boolean;
                           SearchFrom, SearchTo: Integer ): Integer;
   {* |<#richedit>
      Searches given string starting from SearchFrom position up to SearchTo
      position (to the end of text, if SearchTo is -1). Returns zero-based
      character position of the next match, or -1 if there are no more matches.
      To search in bacward direction, set ScanForward to False, and pass
      SearchFrom > SearchTo (or even SearchFrom = -1 and SearchTo = 0). }


и здесь:

function TControl.RE_SearchText(const Value: WideString; MatchCase,
 WholeWord, ScanForward: Boolean; SearchFrom, SearchTo: Integer): Integer;
var Flags: Integer;
   FT: TFindTextW;
begin
 Flags := Integer( ScanForward );
 if WholeWord then Flags := Flags or FT_WHOLEWORD;
 if MatchCase then Flags := Flags or FT_MATCHCASE;
 FT.chrg.cpMin := SearchFrom;
 FT.chrg.cpMax := SearchTo;
 FT.lpstrText := PWideChar( Value );
 Result := Perform( EM_FINDTEXT, Flags, Integer( @FT ) );
end;


С Уважением MTsv DN


Flea   (2005-11-15 23:18:00) [4]

ладно, скажу попроще: у кого-нибудь работает поиск в richedit? может быть есть пример его использования?


Наверх

Титульная страница Поиск, карта сайта Написать письмо