Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Delphi_1курс лекции / Тема 08 Системные диалоги .doc
Скачиваний:
60
Добавлен:
23.03.2015
Размер:
118.27 Кб
Скачать

Подумайте, что произойдет, ели пользователь попытается Сохранить файл до первого вызова "Открыть" Диалог выбора шрифта - компонент 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 без ссылки на компонент подразумевает шрифт формы