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

Вниз

Редактирование в RichEdit   Найти похожие ветки 

 
Fenix ©   (2006-03-03 19:09) [0]

Доброе время суток.
Меня интересуют алгоритмы нахождения в RichEdit определенного словосочетания, и изменения его цвета и размера. Подскажите наиболее актуальные алгоритмы.
Допустим у меня есть текст, и в нем надо выделить допустим "<br>". Притом, что это должно происходить при изменении текста в RichEdit"e.


 
Handle   (2006-03-03 20:56) [1]

Функция замены в строке всех вхождений одной подстроки на другую

В отличие от других подобных функций, эта - не зависнет, если в строке нужно
заменить не только одно слово совершенно другим,
но и допустим, слово "Штаны" на "-Штаны-"
(Т.е. начальное слово после замены остается, но к нему добавляется какой нибудь
символ справа, или слева. В данном случае по краям слова добавлен знак минуса).

function Replace(Str, X, Y: string): string;
{Str - строка, в которой будет производиться замена.
X - подстрока, которая должна быть заменена.
Y - подстрока, на которую будет произведена заменена}


var
 buf1, buf2, buffer: string;
 i: Integer;

begin
 buf1 := "";
 buf2 := Str;
 Buffer := Str;

 while Pos(X, buf2) > 0 do
 begin
   buf2 := Copy(buf2, Pos(X, buf2), (Length(buf2) - Pos(X, buf2)) + 1);
   buf1 := Copy(Buffer, 1, Length(Buffer) - Length(buf2)) + Y;
   Delete(buf2, Pos(X, buf2), Length(X));
   Buffer := buf1 + buf2;
 end;

 Replace := Buffer;
end;
Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
var
 a: Integer;
begin
 for a := 0 to Memo1.Lines.Count do
   Memo1.Lines[a] := Replace(Memo1.Lines[a], "Штаны", "-Штаны-");
end;


 
Fenix ©   (2006-03-03 21:17) [2]

не ты не понял... мна надо только изменить цвет шрифта. А текст так и останеться... Допустим у меня есть список поределенных слов, и мне надо в тексте все эти слова выделить, изменив их цвет и шрифт...



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

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

Наверх




Память: 0.47 MB
Время: 0.077 c
5-1127369126
Vcoder
2005-09-22 10:05
2006.03.19
Динамический массив в методе компонента


10-1115290907
Santyago
2005-05-05 15:01
2006.03.19
Как в Excel документе можно определить конец файла


3-1138614007
Barsky
2006-01-30 12:40
2006.03.19
Чтение Number из файла Paradox (*.db)


2-1141052609
anonymous-
2006-02-27 18:03
2006.03.19
Минимальный размер splitter


15-1140601946
Compton's G
2006-02-22 12:52
2006.03.19
Сетевой эмулятор