Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/47: Рейтинг темы: голосов - 47, средняя оценка - 4.89
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 84
1

Текстовый редактор

30.04.2010, 01:23. Показов 8977. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток..!)
Есть у нас такое задание: сделать простейший текстовый редактор. Ну там жирность текста, цвет и т.д.
Что посоветуете использовать для ввода текста? richTextEdit? Или что удобнее..?
Как запустить FontDialog1 и т.д. по нажатию некой button1, и чтобы это было применимо непосредственно к, например, тому же richTextEdit1..? А очень желательно, чтобы только к выделенному тексту в этом ричэдите..
Заранее спасибо..)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2010, 01:23
Ответы с готовыми решениями:

Текстовый редактор
Нужна программа для открывание и сохранения файла, код есть, но вот как сделать ехе файл ?(((а то...

Текстовый редактор
Недавно начал заниматься кодингом, решил написать текст. редактор... Но столкнулся с 2-мя...

Текстовый редактор MDI
Здравствуйте Пишу программу MDI приложения на C++, если точнее текстовый редактор. Возникли...

Текстовый редактор с использованием RichTextBox
Вот такое я получил задание: Разработать текстовый редактор с использованием menuStrip,...

17
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
30.04.2010, 01:27 2
Leonidus, для начала уточни в чем программируешь.
0
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 84
30.04.2010, 09:17  [ТС] 3
Visual Studio 2008 C++

Добавлено через 12 минут
О, я разобрался, как вообще запускать диалоги..!)))
C++
1
2
3
4
    private: System::Void button1_Click_1(System::Object^  sender, System::EventArgs^  e) {
 
                 fontDialog1->ShowDialog();
             }
Как бы решить осталльные вопросы..

Добавлено через 11 минут
Т.е. как заставить fontDialog1 редактировать (редактирует пользователь) выделенный текст в richTextBox1 при нажатии Button1.
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
30.04.2010, 13:39 4
Leonidus, диалог ничего за вас делать не будет, он просто позволяет выбрать шрифт и все. Единственно, что ты можешь это запросить у диалога после его закрытия параметры шрифта, выбранные пользователем и применить их к выделенному фрагменту текста.
1
39 / 39 / 9
Регистрация: 21.11.2009
Сообщений: 201
30.04.2010, 18:32 5
Могу подсказать как на шарпе это офрмить, в принципе тебе только остнется вместо точек "-> или ::"( эти штуки поставить)
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
37
38
//Вызов FontDialog
private void button4_Click(object sender, EventArgs e)
        {
String fontName;
String fontSize ;
 
 
            FontDialog fd = new FontDialog();
        
            if (DialogResult.OK == fd.ShowDialog())
            {
//К примеру выводит имя шрифта который ты выберешь и размер, для подробной информации используй справку в студии
                fontName = fd.Font.Name.ToString();
                fontSize = fd.Font.Size.ToString();
 
                label2.Text = fontSize;
                label3.Text = fontName;
            }
 
        }
 
По мимо это тебе пригодится может быть ColorDialog принцип такой же 
       private void button5_Click(object sender, EventArgs e)
        {       
int   colorLine1 =0;
 ColorDialog cd = new ColorDialog();
 
            if (DialogResult.OK == cd.ShowDialog())
            {
//Выводит цвет в целом виде
                colorLine1 = cd.Color.ToArgb().ToString();
 
                label5.Text = colorLine1.ToString();
 
            }
}
 
Для редактора лучше используй там больше встроенных функций для работы с текстом, удачи:)
Добавлено через 1 минуту
richTextBox1 используй
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
30.04.2010, 19:31 6
Цитата Сообщение от Leonidus Посмотреть сообщение
Ну там жирность текста, цвет и т.д.
Эти параметры должны влиять не весь текст или только на некоторый фрагмент? Т.е. часть текста делать синим, а часть красным и уметь это записывать-восстанавливать в файл
0
39 / 39 / 9
Регистрация: 21.11.2009
Сообщений: 201
30.04.2010, 21:23 7
Ааааааа а тогда в принципе можно попробовать использовать вот эти методы...
rich1.SelectionColor;// - цвет текста
rich1.SelectedText;// - получает выд. текст
rich1.SelectionAlignment;// - выравнивание
rich1.SelectionFont;// - цвет
0
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 84
01.05.2010, 00:47  [ТС] 8
Нифига..( С Шарпа перевести не удалось.
C++
1
richTextBox1->SelectedText
Это я и раньше нашёл..) А вот что с этим делать.. Ну да, ну взял он выделенный текст.. А дальше..?
Как задать ему новый размер, шрифт, цвет..? Хотябы один параметр, дальше по аналогии несложно..

Добавлено через 1 минуту
CyBOSSeR, а можно по - подробнее..?)))

Добавлено через 9 минут
Нашёл в MSDN пример. Но он не работает..(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private: System::Void button1_Click_1(System::Object^  sender, System::EventArgs^  e) {
 
      fontDialog1->Font = richTextBox1->Font;
      fontDialog1->Color = richTextBox1->ForeColor;
      if (fontDialog1->ShowDialog() != ::DialogResult::Cancel )
      {
         richTextBox1->Font = fontDialog1->Font;
         richTextBox1->ForeColor = fontDialog1->Color;
      }
 
 
 
 
         }
Добавлено через 23 секунды
Если до этого открыть фонтдиалог, то ничего не изменится.

Добавлено через 7 минут
О, нашёл, как применять ко всему тексту.. Осталось разобраться, как к выделенному..
C++
1
2
3
4
    private: System::Void button1_Click_1(System::Object^  sender, System::EventArgs^  e) {
                 fontDialog1->ShowDialog();
richTextBox1->Font = fontDialog1->Font;
richTextBox1->ForeColor = fontDialog1->Color;
Добавлено через 30 минут
Это у нас в Политехе мы так клёво проходим с++. Он у нас по программе, по нему сдаём экзамены, но он весь семестр у нас полностью на самостоятельном изучении. Как на зло, ни одного знакомого, знающего с++. А поступал я исключительно ради него.. Может, кто посоветует дельную толковую книжку, по которой полный нуб сможет при большом желании, которое есть, выучить основы Форм в С++..?
Ах да, у нас, конечно, есть гениальные методички, в которых написан текст для тех, кто с++ уже знает, но подзабыл и хочет вспомнить и все ошибки в примерах она сразу же заметит и мысленно исправит.. А самое обидное, что когда я зову преподавателя с просьбой помочь, он садится, втупляет в текст программы их нескольких строк кода, говорит, что тут надо подумать, долго пытается что - то вспомнить (по крайней мере вид у него при этом умный), потом скажет что - нибудь бесполезное, а иногда и полнейший бред. Например, в прошлый раз он минут 5 пытался найти в Дельфях (у нас ещё и Дельфи параллельно проходится, но там, спасибо школе, я разбираюсь на примитивном уровне) такую штуку:
Задача была написать калькулятор. Ну я по - простому брал текст, делал ему LPTtoSTR, производил манипуляции и обратно STRtoLPT. Так он сказал, что я делаю нерационально, и вообще есть специальная такая форма ввода, где вводятся только числа. Блин, а я поверил.. Пока не позвонил преподу по Дельфим из ВГУ и он надо мной не посмеялся..
Зато у нас (Системы автоматизированного проектирования) очень много клёвой математики, которую почти никто не вдупляет, пока не заплатят 1.5к за курсы, но так во всех ВУЗах..)

Это было лирическое отступление, простите..
Меня устроит даже такой капитально нерациональный вариант как выделение текста в одном ричтексте, копирование во второй, изменение там (это я понял как) и втыкание назад. Единственное, что я не понял, так это то, как воткнуть его назад.
C++
1
2
3
4
5
6
7
8
    private: System::Void button1_Click_1(System::Object^  sender, System::EventArgs^  e) {
                 fontDialog1->ShowDialog();
                 richTextBox2->Text = richTextBox1->SelectedText;
                 richTextBox2->Font = fontDialog1->Font;
                 richTextBox1-> //Что бы тут написать, чтобы вернуться к выделенному тексту..?
                 richTextBox1->SelectedText = richTextBox2->SelectedText;
 
         }
0
GAME
01.05.2010, 13:23
  #9

Не по теме:

Leonidus, не надо гнать на Политех =)))) я с ФТК, из СПб. С(и частично С++) я как-то сам освоил, преподаватель просто рассказывал что да как, на уровне алгоритмов , сначала правда и по коду рассказывал,а основное мы сами делали....правда из форм я решил изучать не CLR а WinAPi , пока не жалею, а вобще у нас ООП будет на 2м курсе )

0
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 84
01.05.2010, 13:28  [ТС] 10
А как то же самое на WinAPI писать.?) Это в той же студии делается или как - то ещё..?
Вопрос про применение к выделенному тексту всё ещё в силе..
0
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
01.05.2010, 13:44 11
Ну на ВинАпи всё получаеться более громоздко.Но возможно проще. Изучив ВинАпи сразу понимаешь , по какому принципу работают программы в Виндовс.
Там всё в основном без классов.
Писать в той же среде.
Создать проэкт - Вин32 - Проэкт Вин32
0
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 84
01.05.2010, 13:59  [ТС] 12
Эх.. Труба..

Как же уже в любом виде применить свойства текста к выделенному......................................
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
01.05.2010, 14:04 13
Цитата Сообщение от Evg Посмотреть сообщение
Т.е. часть текста делать синим, а часть красным и уметь это записывать-восстанавливать в файл
Текст в RichTextBox имеет формат RTF, поэтому с записью и сохранением проблем не будет.
1
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 84
01.05.2010, 14:07  [ТС] 14
Да, спасибо, это здорово, но как мне по нажатию button1 изменить форматирование только выделенного текста, беря, например, параметры в fontDialog1..?
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
01.05.2010, 14:55 15
Leonidus, вот фрагмент кода, который применяет шрифт, выбранный в диалоге к выделенному фрагменту в RichTextBox:
C++
1
2
3
4
5
6
System::Windows::Forms::FontDialog^ fd = gcnew System::Windows::Forms::FontDialog();
 
if (fd->ShowDialog() != System::Windows::Forms::DialogResult::OK)
  return;
 
richTextBox->SelectionFont = fd->Font;
У RichTextBox есть ряд свойств вида Selection***, которые позволяют изменять различные параметры выделенного фрагмента текста. Подробности на MSDN.
1
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 84
01.05.2010, 15:13  [ТС] 16
МЕГАспасибо..!)))))))))))) Именно это я и хотел узнать с самого начала..)))))))))))))
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
01.05.2010, 15:50 17
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Текст в RichTextBox имеет формат RTF, поэтому с записью и сохранением проблем не будет.
Ах вот оно что... Т.е. оно умеет без дополнительных геморроев читать и писать в Rtf? Учтём-с
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
01.05.2010, 16:00 18
Цитата Сообщение от Evg Посмотреть сообщение
Т.е. оно умеет без дополнительных геморроев читать и писать в Rtf?
Да, именно так. Получить/установить текст, содержащий коды форматирования RTF, позволяет свойство Rtf.
0
01.05.2010, 16:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2010, 16:00
Помогаю со студенческими работами здесь

Текстовый редактор не сохраняет в файл данные о форматировании
я сделал небольшой текстовый редактор , который меняет шрифт и цвет , но когда я храню...

MS Visual Studio 2010.с++.хочу создать текстовый редактор
windows Forms ..подскажите как написать код для кнопки.. открывать . с функцией openFileDialog1

Приложение "Текстовый редактор", русские буквы рисуются квадратиками
Здравствуйте! столкнулась с проблеммой: при запросе открыть текстовый файл формата .txt, открывает...

Текстовый редактор
Добрый вечер. Делаю текстовый редактор с возможностью многопользовательского онлайн...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru