Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/132: Рейтинг темы: голосов - 132, средняя оценка - 4.69
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492

RichEdit

04.11.2009, 23:54. Показов 27448. Ответов 177
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
\\Надо получить в одной строке два значения (№счёт и через пробел значение переменой х)
При нажатии Button2
C++
1
2
3
int i++;
int x = 100;
RichEdit1->Lines->Add(i.x);//Add(i.x) не знаю как правильно.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2009, 23:54
Ответы с готовыми решениями:

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

RichEdit
При нажатии RichEdit1 очищает только 1 строку. RichEdit1->Lines->Delete(AutoSize); А надо очистить весь лист.

RichEdit
Подскажите как сделать чтобы в richedit можно было менять шрифт и цвет выделенного текста

177
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
13.11.2009, 15:30
Студворк — интернет-сервис помощи студентам
у тебя компоненты имеют другие имена поэтому и ошибка.... тупо копипаст тебе ничего не даст надо разобраться и сделать "подобно" как в примере... или ты можешь сделать по моему...
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
13.11.2009, 15:31
sh4d°_°ff, Как по твоему?
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
13.11.2009, 15:45
Цитата Сообщение от sh4d°_°ff Посмотреть сообщение
Например это можно сделать так: тебе нужно создать глобальную переменную типа bool; при нажатии кнопки чтобы она меняла свое значение (нажата - true, отжата - false) и каждый раз проверять ее значение.
Хорошо вот тебе код, чтобы определялось нажата кнопка или нет и выделенный текст становился жирным/обычным.С курсивом, и прочим разберись оно делается подобно, все что надо для этого вроде уже написали:

на форме Button1 и RichEdit1

*.h -file
C++
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        TRichEdit *RichEdit1;
        void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
bool KNOPKA_NAJATA; //глобальная переменная
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
*.cpp -file
C++
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
KNOPKA_NAJATA=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (KNOPKA_NAJATA==false)
{
KNOPKA_NAJATA=true;
RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold;//выделенный текст становится жирным
/*
как и говорил ранее Lord_Voodoo "gorin, это думать надо, сходу простым высталением свойств ричэдита твою проблему не решить... тут надо каким-то образом вводимый символ выделять и ему применять стиль - жирный..."
*/
}
else
{
KNOPKA_NAJATA=false;
RichEdit1->SelAttributes->Style=TFontStyles();//выделенный жирный текс становится обычным
}
}
//---------------------------------------------------------------------------
1
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
13.11.2009, 15:56
Цитата Сообщение от sh4d°_°ff Посмотреть сообщение
Хорошо вот тебе код, чтобы определялось нажата кнопка или нет и выделенный текст становился жирным/обычным.С курсивом, и прочим разберись оно делается подобно, все что надо для этого вроде уже написали:

на форме Button1 и RichEdit1

*.h -file
C++
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        TRichEdit *RichEdit1;
        void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
bool KNOPKA_NAJATA; //глобальная переменная
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
*.cpp -file
C++
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
KNOPKA_NAJATA=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (KNOPKA_NAJATA==false)
{
KNOPKA_NAJATA=true;
RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold;//выделенный текст становится жирным
/*
как и говорил ранее Lord_Voodoo "gorin, это думать надо, сходу простым высталением свойств ричэдита твою проблему не решить... тут надо каким-то образом вводимый символ выделять и ему применять стиль - жирный..."
*/
}
else
{
KNOPKA_NAJATA=false;
RichEdit1->SelAttributes->Style=TFontStyles();//выделенный жирный текс становится обычным
}
}
//---------------------------------------------------------------------------
У меня не видет переменную
KNOPKA_NAJATA
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
13.11.2009, 16:14
ты в *.h -файле не прописал
C++
1
bool KNOPKA_NAJATA; //глобальная переменная
можешь это сделать в *.cpp - файле после строк:
C++
1
2
3
4
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---вот тут---
но это не панацея думать все равно придется как выделять символ и проч... а это должно быть.. наверняка есть в том примере из C:\Program Files\Borland\CBuilder6\Examples\Apps\Ri chEdit
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
13.11.2009, 16:23
Цитата Сообщение от gorin Посмотреть сообщение
У меня не видет переменную
KNOPKA_NAJATA
Спасибо большое все работает отлично, ти смотрел тот проект RichEdit? можеш сказать где там ета функция запрограмирована !FUpdating

Добавлено через 8 минут
sh4d°_°ff, Мне просто нужно, когда я зажал две кнопки Жирный и курсивный чтоб я мог писать Жирно курсивеим!!!!!
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
13.11.2009, 16:34
нет тот проект я не смотрел но судя по всему надо искать CurrText()
попробуй разобраться сам.
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
13.11.2009, 16:40
Цитата Сообщение от sh4d°_°ff Посмотреть сообщение
нет тот проект я не смотрел но судя по всему надо искать CurrText()
попробуй разобраться сам.
Там есть такой код, но обьектов под таким названием нету CurrText()
C++
1
2
3
4
TTextAttributes *__fastcall TMainForm::CurrText(void)
{
  return RichEdit1->SelAttributes;
}
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
13.11.2009, 17:59
gorin, как уже заметили выше, копипаст ничего не даёт.
Цитата Сообщение от sh4d°_°ff Посмотреть сообщение
тупо копипаст тебе ничего не даст надо разобраться и сделать "подобно" как в примере
Цитата Сообщение от gorin Посмотреть сообщение
Оно еще не знает что такое
C++
1
CurrText()
В romain.h смотри объявления

C++
1
2
3
4
5
6
7
8
...
private:
    AnsiString FFileName;
    bool FUpdating;
    int FDragOfs;
    bool FDragging;
    TTextAttributes *__fastcall CurrText(void);
...
Я тебе показал посмотреть на примере, а sh4d°_°ff, дал готовый код.
Цитата Сообщение от sh4d°_°ff Посмотреть сообщение
C++
1
RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold;//жирный для выделенного текста
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
13.11.2009, 18:02
Цитата Сообщение от Maestrino Посмотреть сообщение
gorin, как уже заметили выше, копипаст ничего не даёт.


В romain.h смотри объявления

C++
1
2
3
4
5
6
7
8
...
private:
    AnsiString FFileName;
    bool FUpdating;
    int FDragOfs;
    bool FDragging;
    TTextAttributes *__fastcall CurrText(void);
...
Я тебе показал посмотреть на примере, sh4d°_°ff, дал готовый код.
Спасибо большое всем я уже пачти закончил делать Текстовый редактор. Помогите мне зделать одну паследнюю деталь!!!!!!!!!!!!!!!!
Поиск Обектом FindDialog1
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
13.11.2009, 18:46
Цитата Сообщение от gorin Посмотреть сообщение
Помогите мне зделать одну паследнюю деталь!!!!!!!!!!!!!!!!
Можно увидеть архив с исходниками для вашей программы? Интересна реализация.



Цитата Сообщение от gorin Посмотреть сообщение
Поиск Обектом FindDialog1
Думаю после этого вопроса будет ещё "последняя деталь" - ReplaceDialog Изучай - Шаг 58 - Компонент TRichEdit вместе с TFindDialog и TReplaceDialog

Так же смотрим в примерах Examples\Apps\FindRep.
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
13.11.2009, 18:48
воспользуйся стандартной билдеровской справкой (F1)
вот пример оттуда:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*The following OnFind event handler searches a memo component for the text specified in the FindText property of a find dialog component. If found, the first occurrence of the text in Memo1 is selected. The code uses the Pos function to compare strings, and stores the number of characters to skip when determining the selection position in the Skipchars variable. Because there is no handling of case, whole word, or search direction in this algorithm, it is assumed that the Options property of FindDialog1 was set to include frHideMatchCase, frHideWholeWord, and frHideUpDown.
*/
void __fastcall TForm1::FindDialog1Find(TObject *Sender)
 
{
  for (int I = 0; I < Memo1->Lines->Count; I++)
  {
    int PosReturn = Memo1->Lines->Strings[I].Pos(FindDialog1->FindText);
    if (PosReturn) //found!
    {
      int Skipchars = 0;
      for (int J = 0; J < I; J++)
        Skipchars += Memo1->Lines->Strings[J].Length();
      Skipchars += I*2; // add CR/LF for all skipped lines
      Skipchars += PosReturn - 1;
      Memo1->SetFocus();
      Memo1->SelStart = Skipchars;
 
      Memo1->SelLength = FindDialog1->FindText.Length();
      break;
    }
  }
}
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
13.11.2009, 20:47
Цитата Сообщение от Maestrino Посмотреть сообщение
Можно увидеть архив с исходниками для вашей программы? Интересна реализация.



Думаю после этого вопроса будет ещё "последняя деталь" - ReplaceDialog Изучай - Шаг 58 - Компонент TRichEdit вместе с TFindDialog и TReplaceDialog

Так же смотрим в примерах Examples\Apps\FindRep.
Слышеш а куда вставлять етот код
C++
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
//---------------------------------------------------------------------------
void __fastcall TForm2::FindFind(TObject *Sender)
{
if((Sender!=Find)&&(Sender!=Replace))return;
TFindDialog* f = (TFindDialog*)Sender;
//комментарий. Дело в том, что TReplaceDialog
//является потомком TFindDialog, поэтому это преобразование сработает в любом случае
//будь это TFindDialog или TReplaceDialog
TSearchTypes st;
//Опции, введенные пользователем
if(f->Options.Contains(frMatchCase))st<<stMatchCase;
if(f->Options.Contains(frWholeWord))st<<stWholeWord;
if(RichEdit1->SelLength)RichEdit1->SelStart++;
//Когда программа находит что-то, она подсвечивает текст.
//Если HideSelection==true и фокус лежит не на основной форме,
//то выделение видно не будет
RichEdit1->HideSelection = false;
int Found = RichEdit1->FindText(f->FindText,RichEdit1->SelStart,
                                RichEdit1->Text.Length(),st);
if(Found!=-1)
        {
        RichEdit1->SelStart = Found;
        //Прокрутить окно ввода до выделенного места. 
        //С таким же успехом здесь мог быть метод Perform.
        SendMessage(RichEdit1->Handle,EM_SCROLLCARET,0,0);
        RichEdit1->SelLength = f->FindText.Length();
        }
else    {
        Application->MessageBox("Searching has reached the end of the document",
        "Search",MB_OK);
        f->CloseDialog();
        };
//SetFocus(); //эта инструкция пригодилась бы, 
                   //если бы не был установлен флаг HideSelection
}
//---------------------------------------------------------------------------
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
13.11.2009, 21:30
gorin, у FindDialog обработчик есть такой - Find туда и вставляй. Живой пример - Загрузить проект
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
14.11.2009, 14:38
Пацаны всем спасибо, кто знает где можно поменять выбиваущем окне перед закритием проги ("Save Changes?" на "Сохранить документ?")
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
14.11.2009, 14:44
не знаю как у тебя все устроено, но по идее посмотри в обработчике Form1 onCloseQuery
присоединяюсь к просьбе Maestrino
Можно увидеть архив с исходниками для вашей программы? Интересна реализация.
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
14.11.2009, 18:31
бессмысленная тема, вопросы уже 200 раз в интернете обсуждались, кевадрильярд раз описывались в тысячных вариантах, мне кажется что я знаю что надо будет по TRichEdit в следующий раз....
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
14.11.2009, 21:02
Пацаны кто может мне полность построчно описать код программы?

Добавлено через 34 минуты
Вот тот проект над которым я работал http://p23a.at.ua/OOP/RichEdit.exe
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
14.11.2009, 21:35
gorin напиши понятнее. Что значит построчно описать тебе код программы?
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
14.11.2009, 21:41
Цитата Сообщение от gorin Посмотреть сообщение
Вот тот проект над которым я работал
Кому ты очки втираешь? Это же скомпилированый проект из примеров
Code
1
Examples\Apps\RichEdit
Ибо если бы ты над ним работал, то сам бы понимал что за что в ответе.

Цитата Сообщение от DanUnited Посмотреть сообщение
мне кажется что я знаю что надо будет по TRichEdit в следующий раз....
Скорее всего этот. Как сделать чтобы программа не требовала .dll'ок на другом компьютере.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2009, 21:41
Помогаю со студенческими работами здесь

Richedit
Здравствуйте мне интересуют следующие вопросы на счет richedit: 1) как работать с отдельным элементом строки, в частности перестановка...

RichEdit
Здравствуйте! Помогите пожалуйста У меня задача:Дана последовательность из m вещественных чисел. Найти количество элементов, которые...

RichEdit...
На форме 2 кнопки: 1 кнопка добавляет строку крастного цвета, 2 кнопка простую строку, Вот так добавляю строку красную: int...

Рисование в RichEdit
Здравствуйте. Подскажите пожалуйста, как можно рисовать в RichEdit? Канвы у него что-то не нашел, а как по другому не соображу. Заранее...

Прокрутка RichEdit
Добрый день! Как реализовать прокрутку текстового поля RichEdit? Как не пытался, Scroll Bar никак не мог прикрутить к RichEdit


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

Или воспользуйтесь поиском по форуму:
80
Закрытая тема Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
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
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru