Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
6 / 6 / 6
Регистрация: 28.05.2013
Сообщений: 115

Как убрать курсор в RichEdit

28.11.2013, 17:28. Показов 3366. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте Форумчани. Возможно полностью убрать курсор в RichEdit? Сделал попытки. Получается. Только при установлении в инспекторе объектов ReadOnly в позицию true текст я не могу изменять, но курсор мигает по прежнему.
Этот код убирает курсор при нажатии клавиши Enter но только при позиции ReadOnly=false и при этом возможно редактировать текст. Пытаюсь сделать так чтобы курсора в поле RichEdit вообще не было и не было возможности редактировать текст. Конечно возможно поставить Еnebled=false и все замрет и вертикальный ползунок также, но надо чтобы Еnebled=true. Возможно есть способ перевода фокуса на другой компонент размещенный на форме? Если не трудно подскажите. Заранее благодарен.

C++
1
2
3
4
void __fastcall TForm1::RichEdit1Change(TObject *Sender)
{
  HideCaret(RichEdit1->Handle);
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2013, 17:28
Ответы с готовыми решениями:

Как убрать перенос строки в RichEdit
Почему этот кусок кода не помогает? Chat->Text.Delete(Chat->Text.LastDelimiter("\n"), 1); Или я не ту функцию использую? Помогите...

Как убрать из RichEdit все слова нечетной длины?
Есть два ричэдита.в один я считываю с файла, во второй ричэдит мне нужно записать то что я считал, без слов непарной длины. void...

RichEdit курсор и вставка
Добрый день подскажете плиз как в RichEdit поймать положение курсора и вставить туда какой-то текст на 2 строки ? а то у меня вообще ничто...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
28.11.2013, 19:09
Лучший ответ Сообщение было отмечено как решение

Решение

Я, как всегда, с решением через класс-перехватчик:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// В H-файле, перед классом формы:
namespace RE_NoCaret
{
    class TRichEdit : public Comctrls::TRichEdit
    {
    protected:
        virtual void __fastcall WndProc(/*Winapi::*/Messages::TMessage &Message)
        {
            if ((Message.Msg == WM_SETFOCUS) && ReadOnly) return; // <---
            Comctrls::TRichEdit::WndProc(Message);
        }
    public:
        __fastcall virtual TRichEdit(Classes::TComponent* AOwner)
            : Comctrls::TRichEdit(AOwner)
        {
        }
    };
}
#define TRichEdit RE_NoCaret::TRichEdit
 
// Дальше - твоя форма, без изменений
class TForm1 : public TForm
6
6 / 6 / 6
Регистрация: 28.05.2013
Сообщений: 115
29.11.2013, 12:26  [ТС]
Спасибо большое UI. Не подскажите, где можно подробно ознакомиться с данной темой. Заранее спасибо.
0
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
29.11.2013, 13:22
- UI, Вы сторонник радикальных решений! А почему не так, в обработчике OnFormActivate Формы:
C++
1
2
3
4
  // убрать фокус со всех Компонентов (при загрузке приложения).
  ActiveControl = NULL;
  // или так:
  DefocusControl( RichEdit1, false);    //(TWinControl*, bool)
, как Вы когда-то советовали мне ? ... Так ведь проще ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
29.11.2013, 13:34
Цитата Сообщение от PEAPLE Посмотреть сообщение
где можно подробно ознакомиться с данной темой
С какой темой? ООП и наследование? В любой книге по С++. Иерархия классов VCL? В любой книге по Дельфи (или справка, хотя бы и online версия). Сам способ добавления промежуточного класса с измененными свойствами/методами я вычитал у Марко Канту в книге Delphi Handbook, уже не помню о какой версии речь тогда шла, то ли о D7, то ли о BDS 2006, ну, а перенести это на Билдер - дело техники...

Добавлено через 2 минуты
Цитата Сообщение от Staut Посмотреть сообщение
А почему не так, в обработчике OnFormActivate Формы:
И чего? Ну, при активации формы фукус уйдет на форму, дальше что? Пользователь ткнул мышью в RichEdit - оп-па!!! Курсор-то - вот он, мигает, зараза
0
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
29.11.2013, 14:38
- А, разобрался! Я думал, что и Ваш UI способ убирает курсор лишь при включении приложения.
По крайней мере так он работал в моем пробном приложении. Я не заметил, завязку на свойство ReadOnly = true;
Установил и все заработало полностью! Прошу прощения, курсора действительно НЕТ НИКОГДА. Правда и
вводить в РичЕдит больше НЕЛЬЗЯ. Можно только выводить информацию.

Добавлено через 5 минут
- Да, но ведь TC так и нужно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2013, 14:38
Помогаю со студенческими работами здесь

Убрать форматирвоание текста RichEdit
Здравствуйте. В RichEdit вводится текст, и по ходу ввода форматируется как надо, и вот если ввел слово, которое тут же автоматически...

Убрать курсор в Edit
Возможно ли скрыть курсор??? Что бы фокус был на эдите и вводить значения можно было бы, а самого мигающего курсора не было???

Как сделать, что бы в Memo1, на месте (строке) где стоит курсор, выделялась цветом строчка, где стоит печатный курсор «|»?
Как сделать, что бы в Memo1, на месте (строке) где стоит курсор, выделялась цветом строчка, где стоит печатный курсор «|»?

Из RichEdit в RichEdit без потери форматирования
Есть RichEdit1 с форматированным текстом(цвет, стиль и тп.) нужно передать этот текст в переменную а затем в RichEdit2 чтобы при вставке в...

Как переместить курсор в richedit в указанное место?
Подскажите как переместить курсор в ричеедит на нужное место? :-\


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru