Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 17:53   #1
Marianna22
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 24
По умолчанию цвет символа в richedit

Доброго времени суток!
Есть такая проблемка. На форме два компонента richedit. На них отображены бинарные значения символов без пробелов ( типа 01001010111011...). Длина может быть разной. Нужно сравнить строки этих компонент и главное выделить в этих же компонентах несовпавшие символы (допустим красным) цветом. Пример: richedit1 (0100111...) / richedit2 (0110101...)
Буду признательна за любую помощь.
Начала как то так:
Код:
for i:=0 to richedit1.lines.count-1 do
 begin
  for j:=0 to length(richedit1.lines.strings[i]) do
   begin
     if  richedit1.lines.strings[i][j]<> richedit2.lines.strings[i][j]  then
      begin
           // сюда бы вот чего то...
      end;
   end
 end;
Marianna22 вне форума Ответить с цитированием
Старый 05.05.2012, 18:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ИМХО: Для настройки стиля в РичЭдите нужно указать с какого символа начинать заливать цветом, но номер этого символа должен быть абсолютным а не по номеру строки.
Поэтому я полагаю что проход нужно делать в цикле не по строкам а посимвольно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2012, 00:14   #3
Marianna22
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 24
По умолчанию

Если создать два массива симовлов (один из richedit1, другой из richedit2), циклом сравнивать элементы и запоминать номера несовпадающих, какой функцией потом находить эти элементы и перекрашивать?
Marianna22 вне форума Ответить с цитированием
Старый 06.05.2012, 01:30   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
function min(a, b: integer): integer;
begin
  if a > b then result := b else result := a;
end;

procedure TForm1.Button1Click(Sender: TObject);//раскрашивание по клику кнопки
var
  i: integer;
begin
  for i := 1 to min(length(richedit1.Text), length(richedit2.Text)) do
    if richedit1.Text[i] <> richedit2.Text[i] then
    begin
      RichEdit1.SelStart := i - 1;
      RichEdit1.SelLength := 1;
      richedit1.SelAttributes.Color := clred;
      RichEdit2.SelStart := i - 1;
      RichEdit2.SelLength := 1;
      richedit2.SelAttributes.Color := clred;
    end;
  if length(richedit1.Text) > length(richedit2.Text) then
  begin
    RichEdit1.SelStart := length(richedit2.Text) - 1;
    RichEdit1.SelLength := length(richedit1.Text) - length(richedit2.Text);
    richedit1.SelAttributes.Color := clred;
  end
  else
  begin
    RichEdit2.SelStart := length(richedit1.Text) - 1;
    RichEdit2.SelLength := length(richedit2.Text) - length(richedit1.Text);
    richedit1.SelAttributes.Color := clred;
  end;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.05.2012, 14:13   #5
Marianna22
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 24
По умолчанию

Офигенно!!! Слово не для девушки, но спасибо огромнейшее!!! Признательна незнай как)))
Marianna22 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цвет выделения текста RichEdit Kib Общие вопросы Delphi 6 14.02.2013 10:20
цвет в richedit fojia Общие вопросы Delphi 1 05.12.2011 02:41
richedit цвет Pein95 Общие вопросы Delphi 1 27.03.2011 01:35
Цвет текста в Richedit prod87 Общие вопросы Delphi 1 10.07.2010 20:51
RichEdit (цвет и ссылки) Ital1cs Помощь студентам 0 05.04.2010 14:36