Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
1

RichEdit и выделение цветом только определенных слов

15.07.2023, 10:15. Показов 692. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добрый день
загружаю из *.txt информацию в RichEdit
хочу чтобы при открытии формы определенный текст был помечен другим цветом

использую данную функцию
Delphi
1
2
3
4
5
6
function AddColorText(Text: String; Color: TColor): String;
  begin
    RichEdit1.SelAttributes.Color := Color;
    RichEdit1.SelText := Text;
    RichEdit1.SelAttributes.Color := clBlack;
  end;
пример:

ver 1.0.0
QWERTQWRETQTREQWTQREQWTER

ver 1.0.1
KGVKDJVH KSDVJHDFK SKLJS

в результате надо, что-бы "ver " красилось в красный к примеру

Добавлено через 1 минуту
Delphi
1
RichEdit1.lines.Add(AddColorText('ver', clRed));
это добавляет слово "ver" и красит весь текст красным
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2023, 10:15
Ответы с готовыми решениями:

Выделение цветом слов в RichEdit
Добрый день! Понимаю, что такая тема была не раз, но я так и не смог разобраться в этом. Мне нужно сделать подпрограмму, которая бы искала...

RichEdit - Выделение цветом слов
У мя условие, я выделяю текст в ричедите, по нажатию кнопки проверяется если слово больше 12 символов, то окрашиваются последние 3 символа...

Выделение цветом определенных слов в label
Друзья, привет! Давненько меня здесь не было. Понимаю, что тема уже была и обсуждалась на форуме, но ничего конкретного я не нашел. Мне...

14
Эксперт Pascal/Delphi
 Аватар для droider
4925 / 2792 / 856
Регистрация: 04.10.2012
Сообщений: 10,173
15.07.2023, 10:28 2
Цитата Сообщение от MaryoLunga83 Посмотреть сообщение
в RichEdit...определенный текст был помечен другим цветом
Здесь
0
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
15.07.2023, 10:46  [ТС] 3
droider,
почему выдает MarkAllWords в ошибку?
0
Эксперт Pascal/Delphi
 Аватар для droider
4925 / 2792 / 856
Регистрация: 04.10.2012
Сообщений: 10,173
15.07.2023, 10:49 4
Цитата Сообщение от MaryoLunga83 Посмотреть сообщение
почему выдает MarkAllWords в ошибку?
Вам виднее. Текст ее секретен? У меня ошибки не было.
0
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
15.07.2023, 10:50  [ТС] 5
возможно в uses нужно чтото прорисать
или ....
0
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
15.07.2023, 10:51  [ТС] 6
RichEdit и выделение цветом только определенных слов
0
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
15.07.2023, 10:54  [ТС] 7
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
unit InfoUPDT;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;
 
type
  TufInfoUPDT = class(TForm)
    RichEdit1: TRichEdit;
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
 
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  ufInfoUPDT: TufInfoUPDT;
 
implementation
 
{$R *.dfm}
 
uses Main;
 
procedure TufInfoUPDT.FormShow(Sender: TObject);
begin
  RichEdit1.lines.loadFromFile('T:\eOriginal\Update\Update.txt');
  MarkAllWords(RichEdit1, 'ver', clRed);
 end;
 
procedure MarkAllWords(RE: TRichEdit; TheWord: String; Color: TColor);
var
  i, CharPos, CharPos2, noChars: integer;
begin
  CharPos := 0;
  noChars := 0;
  for i := 0 to Pred(RE.lines.Count) do
    noChars := noChars + Length(RE.lines[i]);
  repeat
    CharPos2 := RE.FindText(TheWord, CharPos, noChars, [stWholeWord]);
    CharPos := CharPos2 + 1;
    RE.SelStart := CharPos2;
    RE.SelLength := Length(TheWord);
    RE.SelAttributes.Color := Color;
  until CharPos = 0;
end;
 
end.
0
Эксперт Pascal/Delphi
 Аватар для droider
4925 / 2792 / 856
Регистрация: 04.10.2012
Сообщений: 10,173
15.07.2023, 10:59 8
MaryoLunga83, именно сообщение компилятора можно увидеть? Ниже редактора кода.
0
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
15.07.2023, 10:59  [ТС] 9
droider, хотелось бы взглянуть на весь код если такое возможно
0
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
15.07.2023, 11:00  [ТС] 10
RichEdit и выделение цветом только определенных слов
0
Эксперт Pascal/Delphi
 Аватар для droider
4925 / 2792 / 856
Регистрация: 04.10.2012
Сообщений: 10,173
15.07.2023, 11:09 11
Цитата Сообщение от MaryoLunga83 Посмотреть сообщение
хотелось бы взглянуть на весь код
это и есть весь код.

Вы сначала вызываете процедуру MarkAllWords, а только потом объявляете ее. Поэтому компилятор о ней ничего не знает, о чем и пишет в сообщении. Объявите ее перед вызовом. Вот правильно записанный фрагмент Вашего кода

RichEdit и выделение цветом только определенных слов


и никакой ошибки.
1
Модератор
 Аватар для D1973
9692 / 6294 / 2435
Регистрация: 21.01.2014
Сообщений: 26,851
Записей в блоге: 3
15.07.2023, 11:10 12
MaryoLunga83, реализация автономной процедуры, не являющейся методом класса формы обязательно должна находиться выше места, откуда она вызывается.
Поместите текст процедуры выше обработчика события OnShow формы
1
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
15.07.2023, 12:29  [ТС] 13
всем спасибо, таки да... все заработало
0
Эксперт Pascal/Delphi
 Аватар для droider
4925 / 2792 / 856
Регистрация: 04.10.2012
Сообщений: 10,173
15.07.2023, 13:11 14
Цитата Сообщение от MaryoLunga83 Посмотреть сообщение
все заработало
будьте внимательнее.
0
25 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 232
16.07.2023, 09:34  [ТС] 15
Цитата Сообщение от droider Посмотреть сообщение
будьте внимательнее.
ага, при повторном открытии окна, весь текст становиться красным

Добавлено через 3 минуты
добавил
Delphi
1
2
3
4
5
6
procedure TufInfoUPDT.FormShow(Sender: TObject);
begin
  RichEdit1.Clear; //добавил очистку перед открытием
  RichEdit1.lines.loadFromFile('T:\eOriginal\Update\Update.txt');
  MarkAllWords(RichEdit1, 'ver.', clRed);
end;
все ок
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2023, 09:34
Помогаю со студенческими работами здесь

Выделение цветом слова в RichEdit
Выделяю в динамически созданном RichEdit искомое слово цветом, код работает верно, но как-то долго, 4000 строк обрабатывает около 30 секунд...

Выделение цветом определенных символов
У меня имеется 2 textbox с текстами, чуть-чуть отличается друг от друга. Я хочу выделить эти символы другими цветам. Помогите пожалуйста....

Выделение текста цветом при определенных условиях
Доброго времени суток! В форме имеется Список с двумя столбцами: Номер_блока и Дата_проверки. Как сделать так, чтобы в случае,...

Выделение определенных строк в Memo другим цветом
есть тестирование, в нем идет подсчет балов по типу личности, в конце происходит подсчет, как связать эти баллы с типами личности? Например...

Работа с GridView. Выделение цветом определённых ячеек
Здравствуйте. Как сделать так, чтобы в зависимости от определённых условий, ячейка первого(например) столбца выделялись красным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru