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

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

19.04.2016, 12:20. Показов 2040. Ответов 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
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 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
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 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
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru