Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Цветные строки в RichEdit

13.06.2013, 20:42. Показов 2768. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго вечера, что то я вообще деградировать начал, хочу разукрасить RichEdit но не как не выходит
Хочу полностью выделить строку которая начинается на +
C++
1
2
3
4
5
6
7
8
9
10
  for (int i = 0; i < RichEdit2->Lines->Count; i++) {
 
    if(RichEdit2->Lines[i].Text.Pos("+"))  {
 
 
      RichEdit2->SelStart =  RichEdit2->Lines[i].Text.Pos("+");
      RichEdit2->SelLength = RichEdit2->Lines->Strings[i].Length();
      RichEdit2->SelAttributes->Color = clRed;
                      }
  }
Но получаю access violation и пол выделенной строки из всего текста
Подскажите что не так у меня..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2013, 20:42
Ответы с готовыми решениями:

Цветные слова при нажатии на кнопку (RichEdit)
Не могу розобратса как добавти при нажатии на кнопку слово (например красного цвета). Добавлять строки я знаю как а вот как цветной текст...

Цветные строки в ListBox'е Builder'а
Привет, всем форумчанам! Решил поделиться опытом вывода цветных строк в Builder'овском ListBox'е, т.к. в интернете не нашел прямых...

EPSON CX4900 не видит ЦВЕТНЫЕ картриджи (только ЦВЕТНЫЕ)
После промывки печатающей головки не видит именно цветные картриджи, все три штуки (капелька горит). черный определяет нормально. все...

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
13.06.2013, 22:37
Цитата Сообщение от Ddv122 Посмотреть сообщение
Подскажите что не так у меня..
Обращение к Lines[i] не так:
C++
1
2
3
4
5
6
7
8
9
    for (int i = 0; i < RichEdit2->Lines->Count; i++)
    {
        if(RichEdit2->Lines->Strings[i].Pos("+"))
        {
            RichEdit2->SelStart =  RichEdit2->Lines->Strings[i].Pos("+");
            RichEdit2->SelLength = RichEdit2->Lines->Strings[i].Length();
            RichEdit2->SelAttributes->Color = clRed;
        }
    }
и нет никакого AV... Чудо?
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.06.2013, 00:12  [ТС]
UI, спасибо, но к сожалению вот что получается
C++
1
2
3
4
5
6
7
8
9
 for (int i = 0; i < RichEdit2->Lines->Count; i++)
    {
        if(RichEdit2->Lines->Strings[i].Pos("+"))
        {
            RichEdit2->SelStart =  RichEdit2->Lines->Strings[i].Pos("+");
            RichEdit2->SelLength = RichEdit2->Lines->Strings[i].Length();
            RichEdit2->SelAttributes->Color = clRed;
        }
    }
Миниатюры
Цветные строки в RichEdit  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
14.06.2013, 00:16
Можно, я попробую вот так:
C++
1
2
3
4
5
6
        if(RichEdit2->Lines->Strings[i].Pos("+") == 1)
        {
            RichEdit2->SelStart = RichEdit2->Perform(EM_LINEINDEX, i, 0);
            RichEdit2->SelLength = RichEdit2->Lines->Strings[i].Length();
            RichEdit2->SelAttributes->Color = clRed;
        }
?
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.06.2013, 00:23  [ТС]
UI, Спасибо, всё работает как нельзя лучше)А в чём секрет?
C++
1
 RichEdit2->Perform(EM_LINEINDEX, i, 0);
можете пояснить, что да как ?
как я понял это переход на линию ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
14.06.2013, 00:30
Это переход на начало i-ой строки. Подробнее - в MSDN: EM_LINEINDEX message
Gets the character index of the first character of a specified line in a multiline edit control. A character index is the zero-based index of the character from the beginning of the edit control. You can send this message to either an edit control or a rich edit control.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.06.2013, 13:36  [ТС]
UI,Спасибо, Может подскажите ещё одну вещь -
C++
1
2
3
4
5
6
 if(RichEdit2->Lines->Strings[i].Pos("=") == 1)
        {
            RichEdit2->SelStart = RichEdit2->Perform(EM_LINEINDEX, i, 0);
         //   RichEdit2->SelLength = RichEdit2->Lines->Strings[i].Length();
            RichEdit2->SelAttributes->Color = clRed;
        }
Как подсветить начало строки если известен конец?Т.е до символа =
т.е строки
Code
1
2
3
4
a=1
b=2
ab=1
sa=1
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
14.06.2013, 13:51
Еще раз, что у тебя есть, и что надо подсветить? В строках
a=1
b=2
ab=1
sa=1
твой код вообще ничего делать не будет, потому что там "=" находится не на первой позиции.

C++
1
2
3
4
5
6
7
8
9
10
11
12
        if(RichEdit2->Lines->Strings[i].Pos("=") > 0)
        {
            /*
            // так подсвечивается всё до "равно"
            RichEdit2->SelStart = RichEdit2->Perform(EM_LINEINDEX, i, 0);
            RichEdit2->SelLength = RichEdit2->Lines->Strings[i].Pos("=");
            */
            // так - все, что после "равно"
            RichEdit2->SelStart = RichEdit2->Perform(EM_LINEINDEX, i, 0) + RichEdit2->Lines->Strings[i].Pos("=");
            RichEdit2->SelLength = RichEdit2->Lines->Strings[i].Length() - RichEdit2->Lines->Strings[i].Pos("=");
            RichEdit2->SelAttributes->Color = clRed;
        }
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.06.2013, 13:58  [ТС]
UI, Спасибо, то что нужно 8D
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2013, 13:58
Помогаю со студенческими работами здесь

Цветные строки
Ребята, подскажите пожалуйста компонент, в котором можно выделять строки цветом (неважно фон или текст)

Цветные строки в TMemo
Можно ли выделять разными цветами строки в TMemo? Перед добавлением очередной строки, я меняю цвет, но при этом меняются одновременно...

цветные строки в combobox
Возможно ли сделать в combobox строки цветными ? Мне нужно выделить те, элементы которые недоступны для выбора. Как в менюхе, серым цветом....

ListBox - Цветные строки
как сделать в ListBox цветные строки (в любой строке сменить цвет текста на свой)?

Цветные строки в CComboBox
Добрый день. Стоит задача сделать цветные строки в ССomboBox, переопределением виртуальных методов DrawItem, CompareItem, MeasureItem,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru