- •Системные диалоги 10 Системные диалоги Диалоги работы с файлами - компоненты OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog
- •Подумайте, что произойдет, ели пользователь попытается Сохранить файл до первого вызова "Открыть" Диалог выбора шрифта - компонент FontDialog
- •Диалоги выбора цвета Компонент ColorDialog
- •Компонент tColorBox
Подумайте, что произойдет, ели пользователь попытается Сохранить файл до первого вызова "Открыть" Диалог выбора шрифта - компонент FontDialog
Страница Dialogs
Компонент FontDialog вызывает диалоговое окно выбора атрибутов шрифта.
В нем пользователь может выбрать имя шрифта, его стиль (начертание), размер и другие атрибуты.
Свойства
Font :TFont – Основное свойство компонента, в котором можно задать при желании начальные установки атрибутов шрифта и в котором можно прочитать значения атрибутов, выбранные пользователем в процессе диалога.
MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Если значения этих свойств равны 0 (по умолчанию), то никакие ограничения на размер не накладываются. Если же значения свойств заданы (обычно это целесообразно делать исходя из размеров компонента приложения, для которого выбирается шрифт), то в списке Размер диалогового окна появляются только размеры, укладывающиеся в заданный диапазон. При попытке пользователя задать недопустимый размер ему будет выдано предупреждение вида «Размер должен лежать в интервале ...» и выбор пользователя отменится. СвойстваMaxFontSize и MinFontSize действуют только при включенной опцииfdLimitSize
Device – определяет, из какого списка возможных шрифтов будет предложен выбор в диалоговом окне:fdScreen — из списка экрана (по умолчанию),fdPrinter — из списка принтера,fdBoth — из обоих.
Свойство Options содержит множество опций:
FdAnsiOnlyОтображать только множество шрифтов символов Windows, не отображать шрифтов со специальными символами
FdApplyButtonОтображать в диалоге кнопку Применить независимо от того, предусмотрен ли обработчик события OnApply
FdEffectsОтображать в диалоге индикаторы специальных эффектов (подчеркивание и др.) и список Цвет
FdFixedPitchOnlyОтображать только шрифты с постоянной шириной символов
FdForceFontExistПозволять пользователю выбирать шрифты только из списка, запрещать ему вводить другие имена
FdLimitSizeРазрешить использовать свойства MaxFontSize и MinFontSize, ограничивающие размеры шрифта
FdNoFaceSelОткрывать диалоговое окно без предварительно установленного имени шрифта
FdNoOEMFontsУдалять из списка шрифтов шрифты OEM
FdScalableOnlyОтображать только масштабируемые шрифты, удалять из списка не масштабируемые (шрифты bitmap)
FdNoSimulationsОтображать только шрифты и их начертания, напрямую поддерживаемые файлами, не отображая шрифты, в которых жирный стиль и курсив синтезируется
FdNoSizeSelОткрывать диалоговое окно без предварительно установленного размера шрифта
FdNoStyleSelОткрывать диалоговое окно без предварительно установленного начертания шрифта
FdNoVectorFontsУдалять из списка векторные шрифты (типа Roman или Script для Windows 1.0)
FdShowHelpОтображать в диалоговом окне кнопку Справка
FdTrueTypeOnlyПредлагать в списке только шрифты TrueType
FdWysiwygПредлагать в списке только шрифты, доступные и для экрана, и для принтера, удаляя из него аппаратно зависимые шрифты
По умолчанию все эти опции, кроме fdEffects, отключены.
Если установить опцию fdApplyButton, то при нажатии пользователем кнопки Применить возникает событиеOnApply, в обработчике которого вы можете написать код, который применит выбранные пользователем атрибуты, не закрывая диалогового окна.
Приведем примеры применения компонента FontDialog. Пусть ваше приложение включает окно редактированияMemol, шрифт в котором пользователь может выбирать командой меню Шрифт. Вы ввели в приложение компонентFontDialog, имя которого по умолчаниюFontDialogl. Тогда обработчик команды Шрифт может иметь вид:
if FontDialog1.Execute
then Memo1.Font.Assign(FontDialog1.Font) ;
Приведенный оператор вызывает диалог выбора атрибутов шрифта и, если пользователь произвел выбор, то значения всех выбранных атрибутов, содержащиеся в свойстве FontDialogl .Font, присваиваются атрибутам окна редактирования, содержащимся в свойствеMemol.Font. Шрифт в окне редактирования немедленно изменится.
Если вы установите в компоненте FontDialogl опциюfdApplyButton, то можете написать обработчик событияOnApply:
procedure TForm1.FontDialog1Apply(Sender: TObject; Wnd: HWND);
begin
Memo1.Font.Assign(FontDialog1.Font) ;
end;
Тогда пользователь может наблюдать изменения в окне Memol, нажимая в диалоговом окне кнопку Применить и не прерывая диалога. Это очень удобно, так как позволяет пользователю правильно подобрать атрибуты шрифта.
Если в качестве окна редактирования в вашем приложении вы используете RichEdit, то можете предоставить пользователю возможность выбирать атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Тогда выполнение команды меню Шрифт может осуществляться операторами:
if FontDialogl.Execute then
RichEdit1.SelAttributes.Assign(FontDialogl.Font);
Вы можете разрешить пользователю изменять шрифт не только отдельных компонентов, но и всех компонентов и надписей на форме. Это осуществляется оператором:
if FontDialogl.Execute
then Font.Assign(FontDialogl.Font);
В этом операторе свойство Font без ссылки на компонент подразумевает шрифт формы
