- •В.В. Чуркин
 - •Содержание
 - •Ознакомление с Интегрированной Средой Разработки (иср)
 - •Основное окно иср
 - •Библиографический список
 - •Занятие 1 Формы и компоненты Включение в проект новой формы
 - •Размещение компонентов на форме
 - •Депозитарий – хранилище форм и проектов
 - •Задание 7. Опробовать режимы заимствования форм из Депозитария
 - •Контрольные вопросы
 - •Библиографический список
 - •Занятие 2 Отладка приложений Компиляция и компоновка проекта
 - •Сообщения компилятора и компоновщика
 - •Действия в случае ошибки выполнения
 - •Дальнейшие действия
 - •Окно наблюдения Список Часов
 - •Окно оценки и модификации Оценить|Изменить
 - •Пошаговое выполнение приложения
 - •Точки прерывания
 - •Использование окна Инспектора Отладки
 - •Другие средства отладки
 - •Контрольные вопросы
 - •Библиографический список
 - •Занятие 3 Компоненты ввода и отображения текстовой информации
 - •Компоненты Label, StaticText, Panel
 - •Компоненты Edit, LabeledEdit, MaskEdit
 - •Компоненты Memo, RichEdit
 - •Компоненты ListBox, CheckListBox, ValueListEditor
 - •Компонент StringGrid
 - •Контрольные вопросы
 - •Библиографический список
 - •Занятие 4 Диаграммы и графики Компонент Chart
 - •Компонент Image
 - •Контрольные вопросы
 - •Библиографический список
 - •Контрольные вопросы
 - •Библиографический список
 - •Формирование квадратных матриц
 - •Контрольные вопросы
 - •Библиографический список
 - •Кнопки, индикаторы, управляющие элементы
 - •Управляющие кнопки Button и BitBtn
 - •Кнопка с фиксацией SpeedButton
 - •Группы радиокнопок − компоненты RadioGroup, RadioButton и GroupBox
 - •Индикаторы CheckBox и CheckListBox
 - •Ползунки и полосы прокрутки − компоненты TrackBar и ScrollBar
 - •Заголовки − компоненты HeaderControl и Header
 - •Таймер − компонент Timer
 - •Календарь − компонент DateTimePicker
 - •Панели и компоненты внешнего оформления
 - •Панели общего назначения − компоненты Panel,
 - •Многостраничные панели − компоненты TabControl,
 - •Инструментальные панели − компоненты ToolBar и PageScroller
 - •Перестраиваемые панели − компоненты CoolBar и ControlBar
 - •Контрольные вопросы
 - •Библиографический список
 - •Занятие 8 Системные диалоги
 - •Диалоги открытия и сохранения файлов – компоненты
 - •Фрагменты диалогов – компоненты
 - •Диалог выбора шрифта – компонент FontDialog
 - •Диалоги выбора цвета – компоненты ColorDialog, ColorBox
 - •Контрольные вопросы
 - •Библиографический список
 - •Занятие 9 Технология разработки приложений. Диспетчеризация действий
 - •Диспетчеризация действий на основе компонента ActionList
 - •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar, CustomizeDlg
 - •Контрольные вопросы
 - •Библиографический список
 - •Занятие 10 Динамически присоединяемые библиотеки dll Назначение dll
 - •Статическое и динамическое связывание dll с приложением
 - •Создание dll
 - •Примеры статического и динамического связывания dll
 - •Контрольные вопросы
 - •Библиографический список
 
Диалог выбора шрифта – компонент FontDialog
Перенесите на форму компонент FontDialog.
Двойной щелчок на компоненте FontDialog вызывает диалоговое окно выбора атрибутов шрифта, в котором пользователь может выбрать имя шрифта, его стиль (начертание), размер и другие атрибуты.
Основное свойство компонента – Font типа TFont, в котором можно задать начальные установки атрибутов шрифта и в котором можно прочесть значения атрибутов, выбранные пользователем в процессе диалога.
Свойства MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Значения по умолчанию равны нулю, и тогда ограничения на размер отсутствуют.
Свойство Device определяет, из какого списка возможных шрифтов будет предложен выбор в диалоговом окне: fdScreen – из списка экрана (по умолчанию), fdPrinter – из списка принтера, fdBoth – из обоих.
Свойство Options содержит множество опций, из которого выделим следующие:
| 
			 fdAnsiOnly  | 
			 Отображать только множество шрифтов символов Windows, не отображать шрифтов со специальными символами  | 
| 
			 fdApplyButton  | 
			 Отображать в диалоге кнопку Применить независимо от того, предусмотрен ли обработчик события OnApply  | 
| 
			 fdEffects  | 
			 Отображать в диалоге индикаторы специальных эффектов (подчеркивание и др.) и список Цвет  | 
| 
			 fdFixedPitchOnly  | 
			 Отображать только шрифты с постоянной шириной символов  | 
| 
			 fdForceFontExist  | 
			 Позволять пользователю выбирать шрифты только из списка, запрещать ему вводить другие имена  | 
| 
			 fdLimitSize  | 
			 Разрешить использовать свойства MaxFontSize и Min-FontSize, ограничивающие размеры шрифта  | 
| 
			 fdNoFaceSel  | 
			 Открывать диалоговое окно без предварительно установленного имени шрифта  | 
| 
			 fdScalableOnly  | 
			 Отображать только масштабируемые шрифты, удалять из списка не масштабируемые (шрифты bitmap)  | 
| 
			 fdNoSizeSel  | 
			 Открывать диалоговое окно без предварительно установленного размера щрифта  | 
| 
			 fdNoStyleSel  | 
			 Открывать диалоговое окно без предварительно установленного начертания шрифта  | 
| 
			 fdWysiwyg  | 
			 Предлагать в списке только шрифты, доступные и для экрана, и для принтера, удаляя из него аппаратно зависимые шрифты  | 
По умолчанию все опции, кроме fdEffects, отключены.
Если установить опцию fdApplyButton, то при нажатии пользователем кнопки Применить возникает событие OnApply, в обработчике которого можно написать код, который применит выбранные пользователем атрибуты, не закрывая диалогового окна.
Рассмотрим примеры применения компонента FontDialog.
Начните новое приложение. На форме с надписью ДИАЛОГ FONTDIALOG разместите компоненты MainMenu1, Memo1, RichEdit1, FontDialog1, FontDialog2, FontDialog3.
Сконструируйте меню с командами Шрифт_M, Шрифт_R, Шрифт_F.
В обработчик команды Шрифт_M впишите
if(FontDialog1->Execute())
Memo1->Font->Assign(FontDialog1->Font);
Приведенный оператор вызывает диалог выбора атрибутов шрифта и, если пользователь произвел выбор, значения всех выбранных атрибутов, содержащиеся в свойстве FontDialog1->Font, присваиваются атрибутам окна редактирования, содержащимся в свойстве Memo1->Font. Шрифт в окне Memo1 немедленно изменится. Убедитесь в этом, запустив приложение на выполнение.
В компоненте FontDialog1 установим опцию fdApplyButton в true и напишем обработчик события OnApply:
Memo1->Font->Assign(FontDialog1->Font);
Выполним приложение. Теперь пользователь может наблюдать изменения в окне Memo1, нажимая в диалоговом окне кнопку Применить и не прерывая диалога. Это очень удобно, так как позволяет пользователю правильно подобрать атрибуты шрифта.
Используем в качестве окна редактирования RichEdit1. Теперь в диалоговом окне пользователь выбирает атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Эта возможность реализуется следующим обработчиком команды Шрифт_R:
if(FontDialog2->Execute())
RichEdit1->SelAttributes->Assign(FontDialog2->Font);
Сохраните все и выполните приложение.
Можно разрешить пользователю изменять шрифт не только отдельных компонентов, но и всех компонентов и надписей на форме. Это осуществляется следующим обработчиком команды Шрифт_F:
if(FontDialog3->Execute())
Font->Assign(FontDialog3->Font);
В этом операторе свойство Font без ссылки на компонент подразумевает шрифт формы.
Запустите приложение на выполнение и убедитесь в работоспособности приложения.
