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

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

28.11.2013, 17:28. Показов 3300. Ответов 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
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
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
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru