Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Опять про сравнивание.


Автор: Alkash 23.8.2004, 00:39
Вообщем никак не пойму, как сделать.В эдите набор букв, в рич эдит выводится текст, у текста имеются различия(по цвету или наклону).Как мне проверить на идентичность текст определенного цвета в Рич Эдите с буквами в эдите и выделить их например красным(если совпадение по всем буквам из эдита), а если различия не более чем в один символ, то подчеркнуть?Заранее благодарен.

Автор: [3Df]Grey DeMonstr 25.8.2004, 21:51
Если тебя интересует совпадение по всем буквам, то могу посоветовать такой код:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
 FoundAt: LongInt;
 StartPos, ToEnd: Integer;
begin
while True do with RichEdit1 do begin
 if SelLength <> 0 then StartPos := SelStart + SelLength
                   else StartPos := 0;
 ToEnd := Length(Text) - StartPos;
 FoundAt := FindText(Edit1.Text, StartPos, ToEnd, []);
 if FoundAt <> -1 then begin
   SetFocus;
   SelStart := FoundAt;
   SelLength := Length(Edit1.Text);
   if SelAttributes.Color=clRed then SelAttributes.Color:=clBlue;
   end else begin
   SelLength:=0;
   exit;
   end;
 end;
end;

Здесь сделана проверка на красный цвет, при совпадении перекрашивается в синий. Если интересует совпадение в регистре символов, нужно выставить параметр [stMatchCase] в функции FindText. Как проверять различие в одном символе пока не знаю, но думаю ;)

Автор: Alkash 26.8.2004, 09:38
Спасибо, дело сдвинулось дело с мёртвой точкиsmile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)