С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 23

Текстовый редактор, выбор/отмена шрифта

19.04.2016, 12:20. Показов 1974. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, подскажите плз!
Что нужно вставить в часть кода после executе? Нужно чтобы после выбора шрифта в окне фонт и нажатии кнопки отмена шрифт возвращался в тот формат, в котором был до изменения!?
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TfMain::bFontClick(TObject *Sender)
{
 
            TFont *F = new TFont ;
            F->Assign(mText->Font);
 
        if(!odFont->Execute() ); 
               // Вот здесь нужно вставить else, но что именно прописать?
        
                return;
 
            mText->Font->Assign(odFont->Font) ;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2016, 12:20
Ответы с готовыми решениями:

Графический редактор, функции отмена/повтор действия
Всем добрый вечер, при создании графического редактора возникли некоторые вопросы, прошу помочь с ними разобраться:): 1)как реализовать...

Текстовой редактор (размер шрифта)
Я накидал в ComboBox пару чисел и прописал void __fastcall TForm1::ComboBox1Change(TObject *Sender) { ...

Текстовый редактор
Создать текстовый редактор, позволяющий работать с файлами rtf, doc, txt, изменять шрифт, межстрочные интервалы, выравнивать абзац,...

14
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
19.04.2016, 12:48
Не понял немного зачем там else
C++
1
2
if(odFont->Execute() )
 mText->Font->Assign(odFont->Font) ;
0
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 23
19.04.2016, 12:51  [ТС]
иначе если execute = 0, то сбрасываем значение и возвращаем как было.( текст в редакторе)
Или это можно как то по-другому сделать?
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
19.04.2016, 12:59
Так в моём варианте ничего делаться просто не будет, если результат execute ноль. А вот если не 0, тогда и поменяем шрифт. Вроде, так логичней.
0
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 23
19.04.2016, 13:03  [ТС]
Это уже есть. Теперь нужно чтобы когда заходишь в Font и меняешь шрифт, если тебе вдруг захотелось все вернуть назад, как было до изменений, ты нажимаешь кнопку "отмена" и шрифт возвращается в исходное, как и был. Запись исходного шрифта происходит при нажатии на кнопку "шрифт".
Как это сделать, вот вопрос.
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
19.04.2016, 13:10
Не понимаю смысла. Вот есть кнопка выбор шрифта. Нажимаем, запускается диалог. Если в диалоге нажать ОК, применится выбранный шрифт. Если нажать отмену, выбранный шрифт не применится. Что ещё нужно то, зачем какой-то исходный сохранять?
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,358
Записей в блоге: 3
19.04.2016, 13:10
Егор62, ты не совсем верно понимаешь значение кнопки "Отмена" в диалогах. По сути, любой диалог или выполняется (когда в окне диалога нажата кнопка OK) или не выполняется (когда нажата кнопка Отмена или окно диалога просто закрыто). А чтобы отменить ранее сделанные изменения шрифта - достаточно просто перед изменениями запомнить это значение в какой-то глобальной переменной и создать свою кнопку, нажатие на которую приведет к откату шрифта...
0
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 23
19.04.2016, 13:14  [ТС]
В диалоге так же есть кнопка "Применить".
Заходишь в диалог, меняешь шрифт нажимаешь применить. Передумал, нажимаешь кнопку отмена, все изменения отменяются и шрифт в мемо возвращается в тот формат, в каком он и был.
Сейчас кнопка "Отмена по сути вообще никакой роли не играет. Можно ли на нее вообще привязать эту функцию сбрасывания?
Запись сейчас происходит по нажатию на кнопку "Шрифт", нужно лишь сделать так, чтобы когда execute выводил 0 ( по нажатию на кнопку "отмена") шрифт записанный в F возвращался в мемо.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,358
Записей в блоге: 3
19.04.2016, 13:20
Можешь извратиться и сделать так, как сделано в Windows во время смены видеорежима... Запомнил старый шрифт, вызвал диалог шрифта, выбрал новый шрифт. Как только диалог выполнился - выскакивает окошко с обратным таймпром и кнопками подтверждения и отмены. Если нажата кнопка подтверждения - новый шрифт остается, если кнопка отмены или в течении заданного времени ничего не нажато - применяется старый шрифт

Не по теме:

(только нахрена это надо???)



Добавлено через 3 минуты
Цитата Сообщение от Егор62 Посмотреть сообщение
В диалоге так же есть кнопка "Применить".
Назначение кнопок в диалоговых окнах:
"Отмена" - ничего не делать, закрыть окно.
"Применить" - применить сделанные изменения, оставить диалоговое окно открытым
"ОК" - применить сделанные изменения, закрыть окно.
Т.е., что ты нажмешь "Применить", что ты нажмешь "ОК", кнопка отмена тебе уже не поможет вернуть тот шрифт, который был: все поезд ушел, новый шрифт рулит!!!

Добавлено через 2 минуты
Цитата Сообщение от Егор62 Посмотреть сообщение
Сейчас кнопка "Отмена по сути вообще никакой роли не играет
Как это не играет... Она закрывает диалоговое окно, сигналя при этом, что диалог не выполнен...
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
19.04.2016, 13:23
У меня старые диалоги, нет кнопки "применить"
Подозреваю, что так:
C++
1
2
3
4
5
6
TFont *F = new TFont ;
F->Assign(mText->Font);
 
if(odFont->Execute() )
 mText->Font->Assign(odFont->Font) ;
else mText->Font->Assign(F) ;
1
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 23
19.04.2016, 13:24  [ТС]
Но при этом, я так же могу нажать и на "ОК" после изменений и нажатия на кнопку "Применить". Кнопка "Отмена" не отменяет моих действий, а у меня задача сделать так, чтобы после вывода execute-ом 0, мне из ячейки F мои сохраненные данные применялись к мемо. В ячейке F все параметры шрифта которые были до изменений.
Другое дело, что после мне нужно как то стереть значения в F чтобы не засорять память. Это я думаю лучше сделать так же при нажатие на кнопку "Шрифт".
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,358
Записей в блоге: 3
19.04.2016, 13:34
У меня, кстати, в компоненте FontDialog тоже не наблюдается никакой кнопки "Применить"
Егор62, Если ты используешь какие-то нестандартные компоненты - то смотри документацию к ним...
0
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 23
19.04.2016, 13:36  [ТС]
"применить" я сам делал, с этим все понятно.
Попробую то, что прислал mimicria.
Спасибо за помощь!
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
19.04.2016, 15:34
Цитата Сообщение от D1973 Посмотреть сообщение
У меня, кстати, в компоненте FontDialog тоже не наблюдается никакой кнопки "Применить"
Там в опциях оказывается есть fdApplyButton=false;
Цитата Сообщение от Егор62 Посмотреть сообщение
Другое дело, что после мне нужно как то стереть значения в F чтобы не засорять память.
В конце кода
C++
1
delete F;
1
19.04.2016, 20:07

Не по теме:

Цитата Сообщение от mimicria Посмотреть сообщение
Там в опциях оказывается есть fdApplyButton=false;
Во, блин, точно... Какой только фигни там только нет, оказывается :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.04.2016, 20:07
Помогаю со студенческими работами здесь

Текстовый редактор
Мне нужно создать текстовый редактор на C++ Builder с возможностью вставки рисунков и таблиц.В RICHEDIT можно,но надо писать специальный...

Текстовый редактор
Разработка программы текстовый редактор В чем проблема не найду TeR.cpp #include <vcl.h> #pragma hdrstop #include...

Текстовый редактор
Я делаю текстовый редактор-задание по информатике. Мне нужно написать функцию найти в правке. Не знаю как это сделать. Найти-это типо...

Многокаскадный текстовый редактор
На страницах форума нашел редактор но он не многооконный. Помогите материалом для разработки программки. Подойдут любые советы. Архив...

Текстовый редактор на подобие Ворда!!!!!
Ребята подскажите как можно зделать страницы как ц ворда мести с линейками вертикальной и горизонтальной.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru