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

RichEdit, выделение повторяющихся букв

24.01.2016, 17:24. Показов 1377. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите, как сделать так, чтобы подчеркивались/выделялись курсивом повторяющиеся буквы

ставила цикл для повторной проверки текста, но это не помогло

Code Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if sum_con > sum_vow then
begin
  for i := 1 to 21 do begin
    RichEdit1.SelStart:=pos(con[i],RichEdit1.Text)-1;
    RichEdit1.SelLength:=1;
    RichEdit1.SelAttributes.Style:=[fsUnderline];
  end;
end
else
  for i := 1 to 21 do begin
    RichEdit1.SelStart:=pos(con[i],RichEdit1.Text)-1;
    RichEdit1.SelLength:=1;
    RichEdit1.SelAttributes.Style:=[fsItalic];
  end;
end;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2016, 17:24
Ответы с готовыми решениями:

Выделение текста в RichEdit
Здравствуйте, подскажите, как сделать, чтобы после изменения стиля выделенного текста выделение не исчезало. Вот код:procedure...

Выделение текста в RichEdit
Доброго дня. Подскажите пожалуйста, как выделить нужным цветом определённое слово в компоненте RichEdit? И можно ли это сделать в...

Выделение текста в RichEdit
Вообщем есть 2 RichEdit, я их сравниваю между собой, если есть различия то в счётчик +1 (счётчик это k), если счётчик не равен 0, то...

6
28 / 28 / 23
Регистрация: 26.12.2015
Сообщений: 154
24.01.2016, 17:44
Как именно должны повторяться буквы? (подряд, или просто буква встретившаяся несколько раз в тексте), лучше пример текста.
0
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 4
24.01.2016, 17:57  [ТС]
буквы, которые встречаются несколько раз
я поняла, что проблема в pos, он ищет же только первое вхождение. можно ли его чем то заменить или обмануть?
Миниатюры
RichEdit, выделение повторяющихся букв  
0
Эксперт Pascal/Delphi
 Аватар для droider
4925 / 2792 / 856
Регистрация: 04.10.2012
Сообщений: 10,177
24.01.2016, 18:05
Лучший ответ Сообщение было отмечено River_ как решение

Решение

Цитата Сообщение от River_ Посмотреть сообщение
pos, он ищет же только первое вхождение. можно ли его чем то заменить
PosEx() из модуля StrUtils.
1
28 / 28 / 23
Регистрация: 26.12.2015
Сообщений: 154
24.01.2016, 18:23
можно так но для мыленьких текстов
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;
 
type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
RichEdit1.Text:=edit1.Text;
for i:=1 to length(edit1.Text)do
begin
RichEdit1.SelStart:=i-1;
RichEdit1.SelLength:=1;
RichEdit1.SelAttributes.Style:=[];
  for j:=0 to  length(edit1.Text) do
  if ((i<>j) and (edit1.Text[i]=edit1.Text[j])) then
  begin
  RichEdit1.SelStart:=i-1;
  RichEdit1.SelLength:=1;
  RichEdit1.SelAttributes.Style:=[fsUnderline];
  end;
 
end;
 
 
end;
 
end.
0
28 / 28 / 23
Регистрация: 26.12.2015
Сообщений: 154
24.01.2016, 18:26
пример тут
Вложения
Тип файла: rar повторяющиеся буквы.rar (172.6 Кб, 5 просмотров)
0
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 4
24.01.2016, 18:28  [ТС]
все, спасибо, за помощь решение найдено

Code Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if sum_con > sum_vow then
begin
for j :=0  to length(RichEdit1.Text) do
  for i := 1 to 21 do begin
    RichEdit1.SelStart:=posex(con[i],RichEdit1.Text,j+1)-1;
    RichEdit1.SelLength:=1;
    RichEdit1.SelAttributes.Style:=[fsUnderline];
  end;
end
else
for j :=0  to length(RichEdit1.Text) do
  for i := 1 to 21 do begin
    RichEdit1.SelStart:=posex(con[i],RichEdit1.Text, j+1)-1;
    RichEdit1.SelLength:=1;
    RichEdit1.SelAttributes.Style:=[fsItalic];
  end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2016, 18:28
Помогаю со студенческими работами здесь

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

Построчное выделение текста в RichEdit
Доброго всем времени суток. Есть некая функция, которая построчно добавляет текст в RichEdit и нужно каждую новую строку покрасить в...

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

Выделение слов из строки в RichEdit
Имеется функция: function SearchForText_AndSelect(RichEdit: TRichEdit; SearchText: string): Boolean; var StartPos, Position,...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
Линейное решение нелинейной задачи будет иметь приблизительный результат вычисления для метода обработки данных из double buffering.
Hrethgir 10.04.2025
Вообще изначально я пренебрёг квадратурой числа, но потом понял, что для вычисления приблизительного значения - сгодится, формулу можно будет корректировать по ходу. Это потому что прямое соотношение. . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
TypeScript vs JavaScript: Отличия и когда что использовать
Reangularity 09.04.2025
JavaScript появился в 1995 году как творение Брендана Эйха и быстро стал основой интерактивности в вебе. За свою историю он прошел путь от простого языка для манипуляций с DOM до полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер