Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

глюк ричедит ?   Найти похожие ветки 

 
oleggar ©   (2006-07-05 13:50) [0]

я ищу текст в rtf с помощью trichedit.findtext ,и почему-то текст ищется только
английский.Это как-то лечится ?или придется использовать другие компоненты или загружать текст в массив ?


 
begin...end ©   (2006-07-05 14:32) [1]

Да, аналогичная проблема была, и здесь уже обсуждалась. Причём, если текущая раскладка клавиатуры -- русская, то русский текст ищется без проблем. Лечил собственной реализацией FindText с использованием EM_FINDTEXTW (т.е. сообщения для поиска текста в unicode-формате, описание см. в MSDN) вместо обычного EM_FINDTEXT. Работает это только в NT-системах, насколько я помню.


 
oleggar ©   (2006-07-05 15:00) [2]

у меня НТ .если поделитесь реализацией  ,буду рад до смерти


 
begin...end ©   (2006-07-05 17:36) [3]

> oleggar ©   (05.07.06 15:00) [2]

Вот код немного переделанного метода FindText. Он оформлен как функция, в которую нужно передавать ссылку на конкретный экземпляр RichEdit, но при желании можно создать наследника от TCustomRichEdit и добавить туда эту функцию как метод.

uses RichEdit;

function FindTextW(RichEdit: TCustomRichEdit; const SearchStr: WideString;
 StartPos, Length: Integer; Options: TSearchTypes): Integer;
const
 EM_FINDTEXTW = WM_USER + 123;

var
 Find: TFindTextW;
 Flags: Integer;
begin
 with Find.chrg do
 begin
   cpMin := StartPos;
   cpMax := cpMin + Length;
 end;
 Flags := 0;
 if stWholeWord in Options then Flags := Flags or FT_WHOLEWORD;
 if stMatchCase in Options then Flags := Flags or FT_MATCHCASE;
 Find.lpstrText := PWideChar(SearchStr);
 Result := SendMessage(RichEdit.Handle, EM_FINDTEXTW, Flags, LongInt(@Find));
end


Изменения (по сравнению с обычным FindText) выделены. Как видите, их совсем немного.
:о)


 
oleggar ©   (2006-07-05 18:47) [4]

спасибо



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
2-1154552866
susergey
2006-08-03 01:07
2006.08.20
Абракадабра в TMemo


3-1150401719
keymaster
2006-06-16 00:01
2006.08.20
Детский вопрос


2-1154419487
Neket
2006-08-01 12:04
2006.08.20
SNMP


2-1154348555
Neket
2006-07-31 16:22
2006.08.20
IdSNMP1


3-1150214247
Klaus B.
2006-06-13 19:57
2006.08.20
проблема с SET TERM