Форум: "Основная";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Внизглюк ричедит ? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c